繁体   English   中英

在Workflow Foundation 4.0中,如何在声明了Activity的Execute方法之外读取InArgument的值?

[英]How can I, in Workflow Foundation 4.0, read the value of an InArgument outside of the Execute method of the Activity in which it has been declared?

如何在声明了Activity的Execute方法的外部访问或读取InArgument的值?

我尝试通过传递NativeActivityContext来调用get方法,但这只是导致获得“在活动中声明参数”消息。

Type t = typeof(System.Activities.InArgument<>).MakeGenericType(typeof(Test.Entities.Agent));
object obj = Activator.CreateInstance(t);

MethodInfo dd = t.GetMethod("Get");
object magic = dd.Invoke(obj, new object[] { (System.Activities.ActivityContext)context });

不确定上下文来自何处,但工作流运行时似乎未提供上下文。 工作流运行时为您管理所有参数和变量,并允许您通过NativeActivityContext获取数据。 这些不是您可以在其他地方使用的类型,它们取决于运行时提供的内部结构。 如果要对活动进行单元测试,则应使用WorkflowInvoker来执行活动。 使用活动扩展将活动,意图与实际的实现,扩展分开。

暂无
暂无

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

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