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);
你是对的:)事实上,我需要它只是为了公众。。。但我测试不正确。谢谢