使用新的WorkflowApplication()时传递工作流实例ID

时间:2015-03-20 04:47:06

标签: .net wpf workflow-foundation-4 workflow-activity

我有一个工作流服务主机。在工作流服务中,我有一个活动ExecuteCounterActivity

public sealed class ExecuteCounterActivity : CodeActivity
{

    // If your activity returns a value, derive from CodeActivity<TResult>
    // and return the value from the Execute method.
    protected override void Execute(CodeActivityContext context)
    {
        var workflowInstanceId = context.WorkflowInstanceId;
        var workflowApplication = new WorkflowApplication(new CounterActivity());
        workflowApplication.Run();
    }
}

工作流instanceid =&#34; 06DD16A5-D4B2-4907-A6FF-CA6021E66D75&#34;当我通过代码获得: context.WorkflowInstanceId

在ExecuteCounterActivity中,我新增了一个Workflow应用程序 CounterActivity 。因此,在CounterActivity中。我得到workflowInstaceId,它将返回一个新的实例Id:&#34; 444FEC86-62C1-4AAC-A857-9B9559051E63&#34;

我的期望:CounterActivity中的工作流instanceId与ExecuteCounterActivity中的instanceId相同。

目前,我没有任何解决方案,有人能告诉我解决问题的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用其他方法,使用合成活动或安排它:

protected override void Execute(CodeActivityContext context)
{
    context.ScheduleActivity(new CounterActivity());
}

Custom Composite Activity @msdn

Scheduling Child Activity