Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 工作流实例ID上WF 4中的相关性 在.NET 4下的Windows工作流基础中,有没有一种基于长时间运行的持久化工作流的实例ID(GUID)来关联操作的方法?_Wcf_Workflow Foundation_Workflow Foundation 4_Correlation - Fatal编程技术网

Wcf 工作流实例ID上WF 4中的相关性 在.NET 4下的Windows工作流基础中,有没有一种基于长时间运行的持久化工作流的实例ID(GUID)来关联操作的方法?

Wcf 工作流实例ID上WF 4中的相关性 在.NET 4下的Windows工作流基础中,有没有一种基于长时间运行的持久化工作流的实例ID(GUID)来关联操作的方法?,wcf,workflow-foundation,workflow-foundation-4,correlation,Wcf,Workflow Foundation,Workflow Foundation 4,Correlation,例如: 操作1创建工作流实例,将工作流实例ID返回给客户端 客户端稍后可能会查询InstanceStore数据库以从Instances视图中检索InstanceId 客户端调用操作2并传递InstanceId以进行基于内容的关联 如果让客户端创建GUID并将其传递给第一个操作,在基于内容的关联中使用该值,然后在持久化时提升该值,则可以完成所有这些。不过,这似乎是多余的,因为工作流已经在为实例创建GUID。创建一个活动,从传入的上下文中检索工作流实例Id,并从SendReply活动返回该Id。接下

例如:

  • 操作1创建工作流实例,将工作流实例ID返回给客户端
  • 客户端稍后可能会查询InstanceStore数据库以从Instances视图中检索InstanceId
  • 客户端调用操作2并传递InstanceId以进行基于内容的关联

  • 如果让客户端创建GUID并将其传递给第一个操作,在基于内容的关联中使用该值,然后在持久化时提升该值,则可以完成所有这些。不过,这似乎是多余的,因为工作流已经在为实例创建GUID。

    创建一个活动,从传入的上下文中检索工作流实例Id,并从SendReply活动返回该Id。接下来,使用SendReply上的CorrelationInitializer设置请求相关性。

    Ah,您指的是传递给CodeActivity的Execute方法的CodeActivityContext。“上下文”在这个上下文中是一个重载术语谢谢,这很有效。我必须使用SendReplyToReceive将GUID作为参数发送回以配置CorrelationInitializer,但我还是想这样做。是的,CodeActivityContext或NativeActivityContext(取决于您选择的活动和上下文)确实有些过载。而且消息关联总是在WCF消息的某个部分上进行的,因此您必须将WorkflowInstanceId返回给调用方。但无论如何,他们需要知道未来消息的价值。