次の方法で共有


WorkflowInstanceId を取得する

GetWorkflowInstanceId サンプルでは、ワークフロー インスタンス ID を返GetWorkflowInstanceIdカスタム アクティビティを使用する方法を示します。

対象

カスタム アクティビティ開発、ワークフロー インスタンスにアクセスする方法。

議論

実行中のワークフローのインスタンス ID を取得するには、コードを記述する必要があります。 完全宣言型ワークフローを記述する場合は、ワークフロー インスタンス ID を返すことができるアクティビティが必要です。これにより、ワークフロー内でアクティビティを参照して、完全に宣言型のワークフロー作成エクスペリエンスを提供できます。 多くのシナリオでは、インスタンス ID へのアクセスが必要です。たとえば、ログ記録や監査を目的としたり、インスタンス ID をクライアントに提供して(たとえば、SendReply アクティビティ内でこのアクティビティを使用するなど)、アプリケーション レベルの関連付けを行ったりします。

GetWorkflowInstanceIdは、CodeActivity<TResult>型の値を返す必要があり、ワークフローのインスタンス ID を取得するためにGuidにアクセスできる必要があるため、CodeActivityContextとして実装されます。 その実装はかなり基本的です。

public sealed class GetWorkflowInstanceId : CodeActivity<Guid>
{
    protected override Guid Execute(CodeActivityContext context)
    {
        return context.WorkflowInstanceId;
    }
}