我使用 Type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
检索给定类型的方法数组。
问题是返回的 MethodInfo
可能包含编译器生成的方法,而我不想要这些方法。例如:
property
bool Enabled { get;
将 得到bool get_Enabled()
事件
SomethingChanged
会得到add_SomethingChanged(事件处理程序)
和remove_SomethingChanged(事件处理程序)
我或许可以添加一些过滤逻辑来摆脱它们,这可能会变得非常复杂。我想知道是否还有其他我可以做的事情,例如使用 BindingFlags
设置来仅检索用户定义的方法?
最佳答案
typeof(MyType)
.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
.Where(m => !m.IsSpecialName)
关于c# - 过滤掉 Type.GetMethods() 返回的自动生成的方法(getter/setter/add/remove/.etc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3661539/