c#反射查找重载方法wr到继承
当我有一个类型要传递给该方法时,我试图通过反射找到最合适的方法来调用 让我担心的边缘情况是使用相同数量的参数重载,如下所示:c#反射查找重载方法wr到继承,c#,reflection,C#,Reflection,当我有一个类型要传递给该方法时,我试图通过反射找到最合适的方法来调用 让我担心的边缘情况是使用相同数量的参数重载,如下所示: class UserClass {} class UserClassB : UserClass {} class SomeClass { void method(object x); void method(UserClass x); } 在运行时,我感兴趣的是调用方法,而我手头的类型是UserClassB 最合适的方法是方法(UserClass) 问题是
class UserClass {}
class UserClassB : UserClass {}
class SomeClass {
void method(object x);
void method(UserClass x);
}
在运行时,我感兴趣的是调用方法
,而我手头的类型是UserClassB
最合适的方法是方法(UserClass)
问题是当使用typeof(SomeClass).GetMethod(“method”,新类型[]{typeof(UserClass2)})时
它将返回null,因为我认为它是根据传递的类型的精确匹配进行搜索的
有什么想法吗?谢谢。您缺少绑定标志。 使用可以传递以下标志的重载:
BindingFlags.Instance | BindingFlags.NonPublic 您将获得null,因为GetMethod将查找public方法,除非您指定您也需要非public方法
var method = typeof(SomeClass).GetMethod("method", BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(UserClass) },null);
你是对的:)事实上,我需要它只是为了公众。。。但我测试不正确。谢谢