gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:07:41 25 4
gpt4 key购买 nike

我使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com