¿Cómo puedo leer las propiedades de un objeto que contiene un elemento del tipo de matriz utilizando la reflexión en C#. Si tengo un método llamado GetMyProperties y determino que el objeto es un tipo personalizado, entonces, ¿cómo puedo leer las propiedades de una matriz y los valores que contiene? IsCustomType es un método para determinar si el tipo es personalizado o no.Uso de las propiedades de lectura de reflexión de un objeto que contiene una matriz de otro objeto
public void GetMyProperties(object obj)
{
foreach (PropertyInfo pinfo in obj.GetType().GetProperties())
{
if (!Helper.IsCustomType(pinfo.PropertyType))
{
string s = pinfo.GetValue(obj, null).ToString();
propArray.Add(s);
}
else
{
object o = pinfo.GetValue(obj, null);
GetMyProperties(o);
}
}
}
El escenario es, tengo un objeto de ArrayClass y ArrayClass tiene dos propiedades:
-string Id
-DeptArray[] depts
DeptArray es otra clase con 2 propiedades:
-string code
-string value
Por lo tanto, estos métodos obtiene un objeto de ArrayClass. Quiero leer todas las propiedades de arriba a abajo y almacenar el par nombre/valor en un elemento de diccionario/lista. Puedo hacerlo por valor, personalizado, tipo enum. Me quedé atrapado con una gran variedad de objetos. No estas seguro de cómo hacerlo.
Hola, no veo en tu código lo que intentas lograr. El código no se compilará, porque pInfo.GetValue devuelve un objeto, no una cadena. – Adam
Lo siento. He editado el código para agregar ToString() a pInfo.GetValue(). Tenía que inventar este método. Originalmente, el método tiene una lógica compleja. Para simplificar, necesito leer todas las propiedades, la propiedad de la propiedad y su valor. –