fork download
  1. using System;
  2. using System.Reflection;
  3.  
  4. namespace Recetas.Cap03
  5. {
  6. public class ObsoletoAttribute : Attribute
  7. {
  8. public string descripcion;
  9.  
  10. public ObsoletoAttribute(string descripcion)
  11. {
  12. this.descripcion = descripcion;
  13. }
  14. }
  15.  
  16. public class ClaseEjemplo
  17. {
  18. // Aplicación del atributo `Obsolete` a un método:
  19. [ObsoletoAttribute("Este método ha sido marcado como obsolete. Use el método `Metodo2`.")]
  20. public void Metodo1() { }
  21.  
  22. public void Metodo2() { }
  23. }
  24.  
  25. public sealed class Aplicacion
  26. {
  27. public static void Main()
  28. {
  29. // Obtenemos la representación `Type` de `ClaseEjemplo`:
  30. Type tipo = typeof (ClaseEjemplo);
  31.  
  32. // Creamos una instancia de `MethodInfo` para representar
  33. // el objeto `Metodo1`:
  34. MethodInfo infoMetodo = tipo.GetMethod("Metodo1");
  35.  
  36. // Investiga si el método `Metodo1` ha sido marcado
  37. // con el atributo `ObsoleteAttribute`:
  38. bool marcadoObsoleto = Attribute.IsDefined(infoMetodo, typeof (ObsoletoAttribute));
  39.  
  40. // Resultado:
  41. Console.WriteLine ("\nEl atributo `ObsoletoAttribute` {0} aplicado para el método `{1}` de la clase `{2}`.\n",
  42. marcadoObsoleto ? "está" : "no está", infoMetodo.Name.ToString(), tipo.Name.ToString());
  43. }
  44. }
  45. }
Success #stdin #stdout 0.03s 33888KB
stdin
Standard input is empty
stdout
El atributo `ObsoletoAttribute` está aplicado para el método `Metodo1` de la clase `ClaseEjemplo`.