Não obtendo campos de GetType (). GetFields com BindingFlag.Default
Eu estou usando as classes de reflexão para obter todos os campos dentro de um determinado objeto. Meu problema, porém, é que funciona perfeitamente quando os campos estão dentro de uma classe normal, como:
class test
{
string test1 = string.Empty;
string test2 = string.Empty;
}
Aqui eu recebo test1 e test2, meu problema é que eu uso abstração e, portanto, várias classes combinadas.
Eu tenho algo como:
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;
}
Mas quando eu corro, eu não recebo os campos de voltaGetType().GetFields(BindingFlag.Default)
.
Todos esses campos também têm uma propriedade,get; set;
anexado a ele. Quando executo o código, obtenho as propriedades todo o caminho de volta para test1, mas não para os campos reais.
Este é o código com o qual estou tentando obter os campos:
FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Default);
foreach (FieldInfo field in fields)
Eu também tentei:
FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.NonPublic
| BindingFlags.Static);
Eu uso o mesmo código para as propriedades:
PropertyInfo[] properties = Obj.GetType().GetProperties(BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.NonPublic
| BindingFlags.Static);
foreach (PropertyInfo property in properties)
Alguma idéia porque eu recebo as propriedades das classes abstraídas, mas não os campos?