Получить статический метод родительского объекта - PullRequest
3 голосов
/ 11 декабря 2011

Возникла проблема с получением статического метода от родительского объекта.Проверьте следующий код:

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 объектов.

Я что-то не так делаю, чтобы получить список статических методов?

Ответы [ 2 ]

4 голосов
/ 11 декабря 2011

Вы не указали BindingFlags.Public:

var objType = typeof(ChildClass);
var methods = objType.GetMethods(BindingFlags.Static | 
                                 BindingFlags.FlattenHierarchy | 
                                 BindingFlags.Public);

С этим изменением MethodInfo для GrabStuff, Equals и ReferenceEquals возвращаются.

1 голос
/ 11 декабря 2011

Вы должны указать BindingFlags.Public в дополнение к BindingFlags.Static:

var objType = typeof(ChildClass);
var methods = objType.GetMethods(BindingFlags.Public | BindingFlags.Static);
...