Получить FieldInfo унаследованного класса - PullRequest
0 голосов
/ 08 октября 2010

В C # у меня есть классы, которые выводятся следующим образом:

MyClass1 <- MyClass2 <- MyClass3 <- MyClass4 (The root class is MyClass1)

Теперь у меня есть экземпляр MyClass4 myClass4.Как получить информацию о приватном поле, объявленном в MyClass2?Я могу сделать следующее:

FieldInfo[] fields = model.GetType().BaseType.BaseType.
                       GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
foreach (FieldInfo fld in field)
{
    ....
}

Что если уровень наследования неизвестен?

1 Ответ

1 голос
/ 08 октября 2010

Знаете ли вы, что ищете поле в MyClass2?Если это так, продолжайте читать CurrentType.BaseType до CurrentType == typeof(MyClass2).

Iow

Type lCurrentType = model.GetType();
while (lCurrentType != typeof(MyClass2) && lCurrentType != null)
{
    lCurrentType = lCurrentType.BaseType;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...