GetType()。GetMethods在使用BindingFlag时不返回任何方法

时间:2011-02-17 14:55:18

标签: c# reflection

所以我试图在我的类中检索具有特定属性的所有私有方法。当我做的时候

this.GetType().GetMethods()

这将返回18个方法,所有这些方法都是公开的。所以我尝试修改它以使用绑定标志,如:

this.GetType().GetMethods(BindingFlags.NonPublic);

这导致零结果回来。然后我开始玩游戏,我无法完成GetMethods(BindingFlags.x)的任何覆盖。

this.GetType().GetMethods(BindingFlags.Default);
this.GetType().GetMethods(BindingFlags.Public);

所有这些都返回零结果。我做错了什么?

1 个答案:

答案 0 :(得分:40)

您应该传递BindingFlags.Instance以匹配实例方法:

this.GetType().GetMethods(BindingFlags.Instance | BindingFlags.NonPublic);

如果您想要实例和静态方法,也可以将BindingFlags.Static添加到标志中。