我有一个由许多自定义活动组成的工作流程。所有这些活动都需要访问工作流本身的启动参数。我可以在所有这些自定义活动中定义InArgument,并将工作流参数绑定到自定义活动参数,但我对此解决方案不满意。从自定义活动访问工作流级别参数和变量声明的最佳方法是什么。我可以从ActivityContext获取它们吗?
感谢。
答案 0 :(得分:1)
我们使用自定义活动查看此方法的一种方法是使用ActivityContext中提供的Properties属性。我们有一个带有InArgument的活动,它在execute方法中添加了ExecutionProperty,所以最终得到:
public InArgument<Custom> MyObject {get;set;}
...
context.Properties.Add("Contact",MyObject.Get(context));
然后在您的其他活动中,您可以检查是否已设置
context.Properties.Find("Contact")
显然,如果你这么做很多,我建议在某个地方使用常量而不是魔术字符串,但它应该可以避免在设计时反复添加相同的参数。