Не получать поля из GetType (). GetFields с BindingFlag.Default

Я использую классы Reflection для того, чтобы получить все поля внутри определенного объекта. Моя проблема, однако, заключается в том, что он отлично работает, когда поля находятся внутри нормального класса, например:

class test
{
   string test1 = string.Empty;
   string test2 = string.Empty;
}

Здесь я получаю как test1, так и test2, моя проблема в том, что я использую абстракцию и, следовательно, несколько классов вместе.

Я получил что-то вроде:

class test3 : test2
{
   string test4 = string.Empty;
   string test5 = string.Empty;
}

class test2 : test1
{
   string test2 = string.Empty;
   string test3 = string.Empty;
}
class test1
{
   string test0 = string.Empty;
   string test1 = string.Empty;
}

Но когда я запускаю его, я не получаю поля отGetType().GetFields(BindingFlag.Default).

Каждый из этих полей также имеет свойство,get; set; прикреплен к нему. Когда я запускаю код, я получаю свойства вплоть до test1, но не фактические поля.

Это код, который я пытаюсь получить с помощью полей:

FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Default);
foreach (FieldInfo field in fields)

Я также попробовал:

FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Public 
                                             | BindingFlags.Instance 
                                             | BindingFlags.NonPublic 
                                             | BindingFlags.Static);

Я использую тот же код для свойств:

PropertyInfo[] properties = Obj.GetType().GetProperties(BindingFlags.Public 
                                             | BindingFlags.Instance 
                                             | BindingFlags.NonPublic 
                                             | BindingFlags.Static);

foreach (PropertyInfo property in properties)

Любые идеи, почему я получаю свойства из абстрагированных классов, но не полей?

Ответы на вопрос(6)

Ваш ответ на вопрос