Передача идентификатора экземпляра рабочего процесса при использовании нового WorkflowApplication()

У меня есть хост службы рабочего процесса. В службе рабочего процесса у меня есть действие 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();
    }
}

идентификатор рабочего процесса = "06DD16A5-D4B2-4907-A6FF-CA6021E66D75", когда я получаю по коду: context.WorkflowInstanceId

В ExecuteCounterActivity я создаю приложение CounterActivity для рабочего процесса. Поэтому в CounterActivity. Я получаю workflowInstaceId, он возвращает новый идентификатор экземпляра: "444FEC86-62C1-4AAC-A857-9B9559051E63"

Мое ожидание: идентификатор экземпляра рабочего процесса в CounterActivity такой же, как с instanceId в ExecuteCounterActivity.

На данный момент у меня нет никакого решения для этого, так может кто-нибудь показать мне решение для решения моей проблемы?

1 ответ

Решение

Вы можете попробовать другой подход, используя действия по составлению или планируя его следующим образом:

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

Пользовательская составная активность @msdn

Планирование дочерней активности

Другие вопросы по тегам