Tag: getmethod

C#GetMethod不返回父方法

我有以下类树: public class A { public static object GetMe(SomeOtherClass something) { return something.Foo(); } } public class B:A { public static new object GetMe(SomeOtherClass something) { return something.Bar(); } } public class C:B { } public class SomeOtherClass { } 鉴于SomeOtherClass parameter = new SomeOtherClass() )这适用: typeof(B).GetMethod(“GetMe”, new Type[] { typeof(SomeOtherClass) })).Invoke(null, parameter)); 但是这个: typeof(C).GetMethod(“GetMe”, […]

过滤掉Type.GetMethods()返回的自动生成的方法(getter / setter / add / remove / .etc)

我使用Type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)来检索给定类型的方法数组。 问题是返回的MethodInfo可能包含由我不想要的编译器生成的方法。 例如: property bool Enabled { get; } 将得到bool get_Enabled() 事件SomethingChanged将获得add_SomethingChanged(EventHandler)和remove_SomethingChanged(EventHandler) 我可以添加一些filter逻辑来摆脱它们,这可能会变得非常复杂。 我想知道是否还有其他我可以做的事情,例如使用BindingFlags设置,只检索用户定义的方法?