С# Reflection - статические поля базового класса в производном типе
В С#, когда я размышляю над производным типом, почему я не вижу статические поля базовых классов?
Я пробовал как type.GetFields(BindingFlags.Static), так и type.GetFields().
Ответ 1
Вот как это работает. static участники действительно не объектно-ориентированные вещи. Они не являются полиморфными, и они действительно принадлежат к их объявляющему типу и не связаны с другими типами в иерархии наследования. Например, статический инициализатор для базового класса не требуется запускать перед доступом к статическому члену в производном классе.
static члены базовых классов не возвращаются, если не указано BindingFlags.FlattenHierarchy:
Ваш тип - только ваш тип - он не включает базовые типы. Вам нужно будет использовать BindingFlags.FlattenHierarchy, если вы хотите искать поля в базовых классах.