从父对象获取静态方法时遇到问题。检查以下代码:
var objType = typeof(myClass); // myClass is a ChildClass object
var methods = objType.GetMethods(BindingFlags.Static | BindingFlags.FlattenHierarchy);
父类:
public class ParentClass {
public static T GrabStuff<T>(string values) {
GrabStuff<T>(values, false);
}
// ---- Updated
public static T GrabStuff<T>(string values, bool isSomething) {
// TODO: Do Stuff
}
// ---- Updated
}
儿童班:
public class ChildClass : ParentClass {
}
方法返回0个对象的数组。
我在这里做错了什么来提取静态方法列表?
答案 0 :(得分:4)
您没有指定BindingFlags.Public
:
var objType = typeof(ChildClass);
var methods = objType.GetMethods(BindingFlags.Static |
BindingFlags.FlattenHierarchy |
BindingFlags.Public);
通过此更改,MethodInfo
的{{1}},GrabStuff
和Equals
将被返回。
答案 1 :(得分:1)
除了BindingFlags.Public
:
BindingFlags.Static
var objType = typeof(ChildClass);
var methods = objType.GetMethods(BindingFlags.Public | BindingFlags.Static);