Información general sobre atributos

Actualización: noviembre 2007

Si ha utilizado C++, es probable que esté familiarizado con declaraciones que contienen palabras clave, como public y private, que proporcionan información adicional sobre miembros de clase. Estas palabras clave definen además el comportamiento de los miembros de clase mediante la descripción de la accesibilidad a ella desde otras clases. Dado que los compiladores se diseñan explícitamente para reconocer palabras clave predefinidas, no se tiene normalmente la oportunidad de crear palabras clave propias. Sin embargo, Common Language Runtime permite agregar declaraciones descriptivas a modo de palabras clave, denominadas atributos, para anotar elementos de programación como tipos, campos, métodos y propiedades.

Cuando se compila el código para el motor en tiempo de ejecución, se convierte a lenguaje intermedio de Microsoft (MSIL) y se coloca en un archivo ejecutable portable (PE) junto con los metadatos generados por el compilador. Los atributos permiten colocar información descriptiva adicional en metadatos que se pueden extraer utilizando servicios de reflexión en tiempo de ejecución. El compilador crea atributos cuando se declaran instancias de clases especiales que se derivan de System.Attribute.

.NET Framework utiliza atributos por varias razones y para tratar una serie de problemas. Los atributos describen cómo se serializan datos, se especifican características que se utilizan para exigir seguridad y se limitan optimizaciones mediante el compilador Just-in-time (JIT) para facilitar la depuración del código. También pueden grabar el nombre de un archivo o el autor del código, o controlar la visibilidad de controles y miembros durante el desarrollo de formularios.

Se pueden utilizar atributos para describir el código en cualquier forma imaginable e influir en el comportamiento en tiempo de ejecución mediante nuevas formas creativas. Los atributos permiten agregar elementos descriptivos propios a C#, Visual C++, Microsoft Visual Basic 2005 o a cualquier otro lenguaje orientado a Common Language Runtime sin tener que volver a crear el compilador.

Vea también

Referencia

System.Attribute

Otros recursos

Extender metadatos mediante atributos