我使用Type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
来检索给定类型的方法数组。过滤出由Type.GetMethods()返回的自动生成方法(getter/setter/add/remove/.etc)
问题是返回的MethodInfo
可能包含由我不想要的编译器生成的方法。例如:
财产
bool Enabled { get; }
将 得到bool get_Enabled()
事件
SomethingChanged
会得到add_SomethingChanged(EventHandler)
和remove_SomethingChanged(EventHandler)
我也许可以添加一些过滤逻辑来摆脱他们这可能会变得非常复杂。我想知道是否还有其他可以做的事情,比如BindingFlags
设置,只检索用户定义的方法?
[寻找从吸气/设定器的MethodInfo的托管的PropertyInfo](可能重复http://stackoverflow.com/questions/520138/finding-the-hosting-propertyinfo-from-the- methodinfo-of-getter-setter) – 2010-09-07 18:39:31