Windows工作流(WF):将一个活动的输出作为序列中下一个活动的输入传递

时间:2010-09-30 21:53:18

标签: workflow workflow-foundation

我是WF的新手,所以原谅可能是一个简单的问题。

我正在创建多个活动,这些活动将按顺序执行并向下传递数据。我知道一种方法是在Activity A中设置父序列中的上下文变量,然后在Activity B中读取该值(因此A的输出实际上是B的输入)。

我很好用这种技术,但如果有办法直接声明活动B的输入应该是活动A的输出,我更喜欢这个。我对新活动模板中的这条评论很感兴趣:

"If your activity returns a value, derive from CodeActivity<TResult> and return the value from the Execute method."

从活动返回值有什么意义?可以通过序列中的下一个Activity以某种方式读取此返回值,而不使用共享父级的上下文吗?

2 个答案:

答案 0 :(得分:4)

如果使用CodeActivity,则总会有一个名为result的OutArument属性。无论从Execute()函数返回什么内容都存储在那里。您仍然需要将结果挂钩到变量或其他参数以在工作流中使用它。

答案 1 :(得分:0)

你可以这样声明inoutargument:

    <x:Property Name="ServiceData" Type="InOutArgument(x:string)" />

您可以使用源的结果和输入到目标活动来设置它。

<my:SourceActivity Result="[ServiceData]"/>
<my:DestinationActivity Input="[ServiceData]"/>