28
Abr/10
0

Conocer las propiedades de una clase con reflection

A veces nos puede ser interesante conocer que propiedades tiene una clase, vamos a ver cómo realizar esto con ayuda de la reflexión.
Utilizaremos el namespace using System.Reflection;

Lo primero de todo es crear una nueva instancia de la clase que queremos analizar, y utilizando el método GetType() heredado de la clase object, accederemos al método GetProperties()
Esto nos devuelve un array de tipo PropertyInfo, que podemos recorrer con un foreach y conocer así las propiedades de la propiedad :)

public class Persona
{
    public int Edad { get; set; }
    public string Nombre { get; set; }
}
 
class Program
{
    static void Main(string[] args)
    {
        Persona p = new Persona();
        PropertyInfo[] propiedades = p.GetType().GetProperties();
        foreach (PropertyInfo propiedad in propiedades)
        {
            Console.WriteLine(propiedad.Name + " : " + propiedad.PropertyType);
        }
        Console.WriteLine("Done");
        Console.Read();
    }
}

También podemos recuperar y asignar valores utilizando:

    Persona p = new Persona();
    p.Edad = 18;
    PropertyInfo[] propiedades = p.GetType().GetProperties();
    foreach (PropertyInfo propiedad in propiedades)
    {
        if (propiedad.Name.Equals("Edad"))
        {
            Console.WriteLine("Edad: " + propiedad.GetValue(p, null));
        }
        else if (propiedad.Name.Equals("Nombre"))
        {
            propiedad.SetValue(p, "Pepe", null);
            Console.WriteLine("Nombre: " + propiedad.GetValue(p, null));
        }
    }
    Console.WriteLine("Done");
    Console.Read();

¿Te gustó este artículo?

¡Considera suscribirte a nuestro feed!

Archivado en: C#
Comentarios (0) Trackbars (0)

Aún sin comentarios.

Deja un comentario

Aún sin trackbacks.

Better Tag Cloud