Sto utilizzando le classi Reflection per ottenere tutti i campi all'interno di un determinato oggetto. Il mio problema però è che funziona perfettamente quando i campi sono all'interno di una classe normale, come:Non recuperare i campi da GetType(). GetFields con BindingFlag.Default
class test
{
string test1 = string.Empty;
string test2 = string.Empty;
}
Qui io ottenere sia test1 e test2, il mio problema è che io uso l'astrazione, e quindi diverse classi combinato.
ho avuto qualcosa di simile:
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;
}
Ma quando l'eseguo, non ottengo i campi indietro dal GetType().GetFields(BindingFlag.Default)
.
Ognuno di questi campi ha anche una proprietà, get; set;
collegata ad esso. Quando eseguo il codice, ottengo le proprietà fino a test1 ma non i campi effettivi.
Questo è il codice che sto cercando di ottenere i campi con:
FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Default);
foreach (FieldInfo field in fields)
Ho anche provato:
FieldInfo[] fields = Obj.GetType().GetFields(BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.NonPublic
| BindingFlags.Static);
io uso lo stesso codice per le proprietà:
PropertyInfo[] properties = Obj.GetType().GetProperties(BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.NonPublic
| BindingFlags.Static);
foreach (PropertyInfo property in properties)
Qualche idea del motivo per cui ottengo le proprietà dalle classi astratte ma non dai campi?
Non farebbe comunque molta differenza, poiché i campi non sono statici. –
Ho provato: FieldInfo [] fields = Obj.GetType(). GetFields (BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.FlattenHierarchy); Ma continua a non funzionare. – Patrick
Beh, ho provato: FieldInfo [] fields = Obj.GetType(). GetFields (BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.FlattenHierarchy); Ma ancora senza fortuna. – Patrick