如何获取ActivityContext以获取InArgument的值

时间:2012-02-03 15:21:31

标签: c# .net wpf workflow-foundation

我正在修补Workflow Foundation。我有一个包含参数的活动:

System.Activities.InArgument<double> Temperature

但是,我希望在我的活动中获取此参数的值,以便对其进行一些验证(并根据此参数在我的活动中设置属性)。我知道有一个Get方法需要ActivityContext,所以实际值在运行时就知道了。我的问题是,我如何获得ActivityContext,还是有更好的方法?

注意:我正在我的应用中托管WorkflowDesigner,我放弃了我的活动。因此Activity1包含一个属性“Temperature”,并将其作为InArgument传递给Activity2。然后我验证Activity2,但到目前为止无法获取ActivityContext。我不需要在执行时,但在设计时。

提前致谢。

2 个答案:

答案 0 :(得分:2)

听起来你想要像在WF3中那样使用依赖属性来将activity1的输出绑定到设计时的activity2 的输入。这是对的吗?

在WF4重写中,他们删除了所有允许这种情况的依赖属性。

专门讲述在设计时访问ActivityContext项:我不相信这是可能的。 AC对象在活动执行时创建。它允许多次执行一个活动实例(循环的每次迭代都有一个与之关联的单独AC对象,因为在运行时期间创建了AC对象)。

Here是一篇很好的Microsoft博客文章,描述了WF3和WF4活动运行时执行之间的区别。我认为这可能有助于澄清您想要做什么以及如何解决问题。

答案 1 :(得分:1)