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

Passing workflow instance Id when using new WorkflowApplication()

我有一个工作流服务主机。在工作流服务中,我有一个 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 = "06DD16A5-D4B2-4907-A6FF-CA6021E66D75" 当我通过代码获取时:context.WorkflowInstanceId

在 ExecuteCounterActivity 中,我新建了一个 Workflow 应用程序 CounterActivity。因此,在 CounterActivity 中。我得到 workflowInstaceId,它将 return 一个新的实例 ID:“444FEC86-62C1-4AAC-A857-9B9559051E63”

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

目前,我对此没有任何解决方案,所以有人可以向我展示解决我的问题的解决方案吗?

您可以尝试不同的方法,使用组合活动或像这样安排它:

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

Custom Composite Activity @msdn

Scheduling Child Activity