28
Abr/100
Abr/100
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?
Comentarios (0)
Trackbars (0) ( suscribirse a los comentarios de esta entrada )
Aún sin comentarios.
Deja un comentario
Aún sin trackbacks.
