如何调用MethodInfo?

Ian*_*oyd 0 .net c# reflection

我有一个MethodInfo对象,它定义了我想要调用的方法.

除了我需要的objectMethodInfo来自何方.

伪代码:

void CallMethod(MethodInfo m)
{
    Object o = Activator.CreateInstance(m.ClassType);
    o.GetType().InvokeMember(m.Name, BindingFlags.InvokeMethod, null, o, null);
}
Run Code Online (Sandbox Code Playgroud)

除了我不知道如何获得属于type的类MethodInfo.

我怎么称呼MethodInfo

Jon*_*eet 5

MethodInfo知道的方法调用的目标-将MethodInfo有效地所属的类型,而不是一个具体的对象.

您需要有一个目标类型的实例来调用该方法.您可以使用MethodInfo.DeclaringType(继承自己MemberInfo.DeclaringType)轻松找到类型,但此时您可能没有实例...

正如里德所指出的,MemberInfo.ReflectedType可能更合适DeclaringType,取决于您计划如何使用它.

你没有解释你正在做什么,但如果你的设计的其余部分可以适当改变,那么Action代表一个代表而不是一个代表可能更MethodInfo合适.