繁体   English   中英

如何将对象传递给WF4的后代活动?

[英]How do I pass objects to descendant activities in WF4?

我是Workflow Foundation 4的新手,我已经努力工作了好几天,看起来似乎完全没什么大不了的。 请注意,我主要是在这里编写C#活动的代码,并不是XAML真正经历的所有事情。

总结我的问题,我试图弄清楚如何以编程方式将会话对象(或只是任何对象!)传递给所有子代子活动(或至少传递给被教为使用该会话的活动)。

我已经有一个“外部”活动,您可以在其上放下任何其他活动(包括诸如Sequence,Flowchart之类的组合内容以及其他任何内容)。 因此,它仅具有一个直接的子活动,但又可能具有几代后代(其内容可能有所不同),在此牢记这一点很重要。 我事先不知道会有多少后代活动,或者它们的类型是什么。

“外部”活动在安排其子活动之前,会建立某种会话对象(让我们假设只是一个名为“会话”的对象)。 这是主要问题:我有一些专门的自定义内部活动,这些活动需要知道如何获取此Session引用(即,其他活动将不知道Session或不需要)。 这些自定义的内部活动可能是“外部”活动的几代人,因此我不能仅仅让外部活动将Session注入其单个孩子或类似的活动。

除了使用一些非常麻烦且容易出错的递归反射外,我找不到任何方法可以实现此目的。 我曾尝试使用工作流变量,InArguments和OutArguments,但没有运气让它们继续传承下去。 我在想使用变量是可行的方法,但是我一直难以弄清执行此操作的正确方法(对此我深表歉意)。 在这一点上,我什至不确定是否应该通过向下传递对象或让后代向上搜索来实现这一点。

做到这一点的最佳方法是什么?

有两种选择。

  1. 使用扩展名-知道扩展名的子活动可以获取扩展名并从中读取数据。
  2. 使用设置执行属性的合并范围活动-请参阅执行属性示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM