获取 WorkflowInstanceId

本主题适用于 Windows Workflow Foundation 4。

此示例演示如何使用自定义活动 GetWorkflowInstanceId 返回工作流实例 ID。

演示

自定义活动开发,如何访问工作流实例。

讨论

若要获取某个正在运行的工作流的实例 ID,则需要编写代码。如果您想要编写一个完全声明性的工作流,则需要一个可返回工作流实例 ID 的活动,以便于可在工作流中引用该活动,以提供完全声明性的工作流创作体验。许多方案需要访问实例 ID:一些示例用于记录或审核目的,或通过将实例 ID 提供回到客户端以供将来关联(例如,通过在 SendReply 活动内部使用此活动),用于执行应用程序级相关性。

GetWorkflowInstanceId 作为一个 CodeActivity 实现,因为它必须返回 Guid 类型的值,而且它必须具有对 CodeActivityContext 的访问权以获取工作流的实例 ID。它的实现是相当基本的。

public sealed class GetWorkflowInstanceId : CodeActivity<Guid>
{
protected override Guid Execute(CodeActivityContext context)
        {
            return context.WorkflowInstanceId;
        }
}
Ee943758.Important(zh-cn,VS.100).gif 注意:
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:

<安装驱动器>:\WF_WCF_Samples

如果此目录不存在,请转到 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录:

<安装驱动器>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\GetWorkflowInstanceId