1

我有一个由许多自定义活动组成的工作流程。所有这些活动都需要访问工作流本身的启动参数。我可以在所有这些自定义活动中定义 InArgument 并将工作流参数绑定到自定义活动参数,但我对这个解决方案不满意。从自定义活动访问工作流级别参数和变量声明的最佳方式是什么。我可以从 ActivityContext 获取它们吗?

谢谢。

4

1 回答 1

1

我们通过自定义活动查看此问题的一种方法是使用 ActivityContext 中可用的 Properties 属性。我们有一个带有 InArgument 的活动,它在 execute 方法中添加了一个 ExecutionProperty,所​​以你最终得到:

public InArgument<Custom> MyObject {get;set;}

...

context.Properties.Add("Contact",MyObject.Get(context));

然后在您的其他活动中,您可以检查是否已设置

context.Properties.Find("Contact")

显然,如果您经常这样做,我建议您在某处使用常量而不是魔术字符串,但它应该可以避免您在设计时一遍又一遍地添加相同的参数。

于 2010-05-26T09:17:31.917 回答