WF4持久性小例子

时间:2014-06-02 15:38:59

标签: workflow-foundation-4

我想为我的WF4主机使用支持的WF4持久性,但到目前为止我还没有看到任何好的,简单的,简洁的例子。我希望有人可以提出样本,或者知道有这些类型示例的网站。

1 个答案:

答案 0 :(得分:3)

打开SQL Server管理工作室并创建持久性数据库。

对于.Net 4.5 使用以下SQL脚本:%systemroot%\ Microsoft.NET \ Framework \ v4.0.30319 \ SQL \ en 按此顺序 SqlWorkflowInstanceStoreSchema.sql SqlWorkflowInstanceStoreLogic.sql

请参阅:http://blogs.msdn.com/b/carlos/archive/2013/01/10/workflow-foundation-sql-scripts.aspx

然后打开Visual Studion并制作工作流并将其附加到WorkflowApplication

_workflowApplication = new WorkflowApplication(new International(), inParams);

其中International是工作流的名称(在这种情况下是XAML)

然后将持久性提供程序连接到WorkflowApplication:

    InstanceStore persistanceStore = new 

SqlWorkflowInstanceStore(_persistenceDataBaseConnection);

_workflowApplication.InstanceStore = persistanceStore;

其中_persistenceDataBaseConnection是SQL instence的连接字符串。

现在,当您运行工作流程(_workflowApplication.Run();)时,持久性存储就可以使用了。

当您告诉它(使用Persist活动)或工作流等待/延迟时(如果您设置回调委托:例如

)它将保持工作流程

_workflowApplication.PersistableIdle = WorkflowApplicationPersistableIdle;

WorkflowApplicationPersistableIdle是您编写的方法。

您还应该在加载持久工作流时将工作流ID保存在某处以供使用(参见下文)

WorkFlowID = _workflowApplication.Id.ToString();

还有许多其他功能,但这些功能都是基础。

从Persistence商店加载工作流程:

制作相同类型的工作流应用程序:

    _workflowApplication = new WorkflowApplication(new International(), inParams);

然后使用持久工作流的ID

加载它
_workflowApplication.Load(_workflowID);