暂停/保留后如何正确加载工作流程?

时间:2010-06-15 14:38:15

标签: c# persistence c#-4.0 workflow-foundation-4

使用此MSDN Article作为暂停和恢复的示例,可以假设这非常简单。这就是我“暂停”工作流程的方式......

LastWfGuid = workflow.Id;
workflow.Unload();

非常简单,它应该持久存储到实例存储(我已经在这两行之前设置),并且我确实在Instance视图和InstancesTable中看到了条目。当我准备好恢复工作流程时,我会这样做......

workflow = new WorkflowApplication( myActivity, myWfArgs );
workflow.InstanceStore = wfStore;
workflow.Load(LastWfGuid);

此时我得到一个InvalidOperationException,异常消息是......

Workflow inputs cannot be used with Load or LoadRunnableInstance, since they are only provided to new instances.

如果我无法加载以前保留的工作流程,我该如何重新恢复?我尝试过简单地用Persist()来代替Unload(),并且从外面看起来没问题,我也没有收到异常。但是,工作流程继续运行它的过程,这不是我正在寻找的。我想暂停然后恢复我的工作流程。

1 个答案:

答案 0 :(得分:3)

在创建用于加载现有工作流实例的WorkflowApplication时删除myWfArgs参数。像这样:

workflow = new WorkflowApplication(myActivity);
workflow.InstanceStore = wfStore;
workflow.Load(LastWfGuid);