Workflow 加载持久化工作流时如何告知活动类型
问题: 有没有一种简单的方法可以找出创建工作流所使用的活动类型 背景: 我正在编写自己的基于Windows Workflow 4宿主引擎的Workflow 加载持久化工作流时如何告知活动类型,workflow,workflow-foundation-4,Workflow,Workflow Foundation 4,问题: 有没有一种简单的方法可以找出创建工作流所使用的活动类型 背景: 我正在编写自己的基于Windows Workflow 4宿主引擎的WorkflowApplication,在尝试从数据库中加载持久化工作流时遇到了一些问题。我正在使用WorkflowApplication.Load(Guid)方法启动工作流,但这要求我已经创建了WorkflowApplication 查看SqlWorkflowInstanceStore数据库,我看不到存储在任何地方的类型名称,也看不到易于关联的名称,除非我自
WorkflowApplication
,在尝试从数据库中加载持久化工作流时遇到了一些问题。我正在使用WorkflowApplication.Load(Guid)
方法启动工作流,但这要求我已经创建了WorkflowApplication
查看
SqlWorkflowInstanceStore
数据库,我看不到存储在任何地方的类型名称,也看不到易于关联的名称,除非我自己创建另一个表来存储该信息。使用工作流服务时,相对URL用于确定WorkflowServiceHost是否拥有工作流实例,这是通过数据库中的ServiceDeploymentsTable表完成的。当您使用Workflow应用程序时,没有类似的机制,因此您必须自己运行
可以做的一件事是使用属性提升将类型存储在InstancePromotedProperties表中。它可以避免您创建新表,但这并不是解决问题的理想方法。我想您有两种方法可供选择,这两种方法都不是最优的:
- 您可以使用Maurice已经建议的提升属性将信息存储在InstancePromotedProperties表中,从而避免创建自己的表。有一篇好文章
- 如果您决定创建自己的表,我建议您实现一个。签出后,您可以始终存储类型名称或XAML,而不是路径
持久性IOParticipant
上做出了卓越的贡献!