fork download
  1. using System;
  2. using System.Reflection;
  3.  
  4. namespace Recetas.Cap03
  5. {
  6. public class ClaseDemo
  7. {
  8. public int entero = 0;
  9. public string cadena = null;
  10.  
  11. public ClaseDemo() { }
  12.  
  13. public void Metodo () { }
  14. }
  15.  
  16. public sealed class UsoGetMembers
  17. {
  18. public static void Main()
  19. {
  20. try
  21. {
  22. // Instanciación de `ClaseDemo`:
  23. ClaseDemo cd = new ClaseDemo();
  24.  
  25. // Arreglo para la contentención de la descripción
  26. // de los atributos de los miembros de la clase `ClaseDemo`:
  27. MemberInfo[] miembros;
  28.  
  29. // Obtención de la representación `Type` de la
  30. // clase `ClaseDemo`:
  31. Type tipo = cd.GetType();
  32.  
  33. // Obtiene un arreglo con todos los miembros public de `ClaseDemo`:
  34. miembros = tipo.GetMembers();
  35.  
  36. // Resultado:
  37. Console.WriteLine ("\nLos miembros de la clase `{0}` son:\n", tipo);
  38. for (int i = 0; i < miembros.Length; ++i)
  39. {
  40. // Detalle el nombre del miembro y el su tipo:
  41. Console.WriteLine ("\t`{0}` es un `{1}`", miembros[i].Name.ToString(), miembros[i].MemberType.ToString());
  42. }
  43. }
  44. catch(Exception e)
  45. {
  46. Console.WriteLine ("Excepción: {0}", e.Message);
  47. }
  48.  
  49. Console.WriteLine ();
  50. }
  51. }
  52. }
Success #stdin #stdout 0.05s 33832KB
stdin
Standard input is empty
stdout
Los miembros de la clase `Recetas.Cap03.ClaseDemo` son:

	`Metodo` es un `Method`
	`Equals` es un `Method`
	`GetHashCode` es un `Method`
	`GetType` es un `Method`
	`ToString` es un `Method`
	`.ctor` es un `Constructor`
	`entero` es un `Field`
	`cadena` es un `Field`