我是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以某种方式读取此返回值,而不使用共享父级的上下文吗?
答案 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]"/>