Nivel 7 — Metadatos
Atributos
Notas originales de SunDiaL · Ver fuente en inglés
A veces, la propia clase, función o tipo no basta para describir todo el comportamiento que quieres. Por eso existen los atributos: son metadatos que puedes adjuntar al código. No hacen nada por sí mismos: simplemente describen algo, y otro código —como frameworks, bibliotecas o tus propias herramientas— debe leerlos y reaccionar en consecuencia.
Definir tu propio atributo
Todos los atributos son simplemente clases que heredan de System.Attribute:
public class MyTagAttribute : Attribute
{
public string Note { get; }
public MyTagAttribute(string note)
{
Note = note;
}
}
Utilizar un atributo
Un atributo se utiliza aplicándolo a otro elemento. Los elementos a los que puedes aplicarlo son:
- Clases
- Estructuras
- Métodos
- Propiedades
- Parámetros
- Incluso ensamblados
[MyTag("Just a test")]
public class MyClass {}
Pero, aunque lo hayas aplicado, sigue sin hacer nada. Para que tenga algún efecto, necesitas código capaz de leer esos atributos y tomar decisiones basándose en ellos. Como los atributos también son código, el resultado es básicamente «código que lee código». Esto se llama reflexión.