Tengo la clase B y su clase principal A, ambas en el dominio del espacio de nombres.¿Cómo obtener los campos privados de clase y su (s) clase (s) primaria (s) por reflexión?
- La clase A, tiene el campo privado a;
- Clase B, tiene el campo privado b;
Luego tengo un Reflection Util en el espacio de nombres Reflect. Si utilizo esta línea
instanceOfB.GetType().GetFields(BindingFlags.NonPublic
| BindingFlags.Public | BindingFlags.Instance);
a encontrar todos los campos (un & b), sólo obtengo b. Pero cuando hago a
protegido o público, también los encuentro.
¿Qué debo hacer para encontrar los campos privados de la clase base también?
Permítame que pedir un poco más: Cuando voy recursiva throug la jerarquía de clases, ¿cómo me aseguro, que Obtengo todos los campos (incluso los campos públicos del padre) solo una vez? – Ralph
@Ralph: puede usar 'BindingFlags.DeclaredOnly' para * evitar * obtener campos heredados de clases base. –
Jon Skeet: Muchas gracias – Ralph