C# 在工作流基础4中,我如何读取已声明的活动的Excel方法外的一个参数的值?

C# 在工作流基础4中,我如何读取已声明的活动的Excel方法外的一个参数的值?,c#,.net,workflow-foundation-4,C#,.net,Workflow Foundation 4,如何访问或读取声明了InArgument的Activity的Execute方法之外的InArgument值 我试图通过传递NativeActivityContext来调用get方法,但结果只是得到了一条“declare the argument on the activity”消息 Type t=typeof(System.Activities.inagrament).MakeGenericType(typeof(Test.Entities.Agent)); object obj=Activat

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

我试图通过传递NativeActivityContext来调用get方法,但结果只是得到了一条“declare the argument on the activity”消息

Type t=typeof(System.Activities.inagrament).MakeGenericType(typeof(Test.Entities.Agent));
object obj=Activator.CreateInstance(t);
MethodInfo dd=t.GetMethod(“Get”);
objectmagic=dd.Invoke(obj,新对象[]{(System.Activities.ActivityContext)context});

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

我正在将NativeActivityContext传递给帮助器方法。我这样做的原因是我使用反射将数据从InArgument对象映射到声明为OutArguments的属性。我能够使用相同的NativeActivityContext对象调出在工作流级别声明的In和OutArguments。在activities Execute方法之外,我无法访问activity中声明的In和OutArgument属性。
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 });