Cómo: Proporcionar descripciones de metadatos sobre los componentes
Actualización: noviembre 2007
Puede proporcionar metadatos descriptivos sobre el componente por medio de attributes. Los atributos son clases especializadas que se aplican a elementos de código. En tiempo de compilación, los atributos se emiten como metadatos disponibles para Common Language Runtime o para herramientas y aplicaciones personalizadas mediante el espacio de nombres System.Reflection.
Para asociar atributos a un componente, se inserta delante del componente una referencia al atributo y se proporcionan los parámetros o indicadores correspondientes. Esta llamada al constructor se encierra entre paréntesis angulares <> en Visual Basic y entre corchetes [] en C#.
Por convención, todas las clases de atributo acaban en "Attribute". Por ejemplo, hay clases: DescriptionAttribute, ObsoleteAttribute y BrowsableAttribute. Sin embargo, varios lenguajes dirigidos a Common Language Runtime, entre ellos Visual Basic y C#, no requieren el nombre completo del atributo. Por ejemplo, se puede hacer referencia a ObsoleteAttribute en el código como Obsolete.
Para asociar un atributo existente a un componente
Determine cuáles son los atributos necesarios para el componente.
Asocie los atributos al componente. Observe que debe utilizar el nombre completo del atributo o agregar la instrucción Imports (using) correspondiente. El ejemplo siguiente muestra cómo se asocia el atributo DescriptionAttribute:
Imports System.ComponentModel <Description("This is a description string")> Public Class TheClass End Class
using System.ComponentModel; [Description("This is a description string")] public class TheClass { }
Atributos personalizados
También puede crear sus propios atributos para utilizarlos con sus propias herramientas o aplicaciones personalizadas heredando de Attribute. Puede agregar a esta clase base todas las propiedades personalizadas o métodos necesarios para la aplicación.
Para crear y aplicar un atributo personalizado
Cree una clase que herede de Attribute.
Public Class WidgetAttribute Inherits System.Attribute End Class
public class WidgetAttribute: System.Attribute { }
Determine qué propiedades y métodos necesita el atributo y escriba el código correspondiente. En el ejemplo siguiente se muestra cómo se crea una propiedad WidgetType que se establece en el constructor de la clase WidgetAttribute. El atributo AttributeUsageAttribute establece a qué miembros de código puede estar destinado el atributo.
<AttributeUsage(System.AttributeTargets.Class)> Public Class _ WidgetAttribute Inherits System.Attribute Private mWidgetType as WidgetTypeEnum ' Creates a readonly property for the WidgetAttribute class. Public ReadOnly Property WidgetType as WidgetTypeEnum Get Return mWidgetType End Get End Property ' Creates a constructor that accepts a parameter and assigns the ' value of that parameter to the WidgetType property. Public Sub New(type as WidgetTypeEnum) MyBase.New() mWidgetType = type End Sub End Class
[AttributeUsage(System.AttributeTargets.Class)] public class WidgetAttribute: System.Attribute { private WidgetTypeEnum widgetType; // Creates a readonly property for the WidgetAttribute class. public WidgetTypeEnum WidgetType { get {return widgetType;} } public WidgetAttribute(WidgetTypeEnum type): base() { widgetType = type; } }
Aplique este atributo como haría con cualquier otro y asegúrese de aplicar todos los parámetros necesarios.
<WidgetAttribute(WidgetTypeEnum.VerticalWidget)> _ Public Class WidgetFortyFive End Class
[WidgetAttribute(WidgetTypeEnum.VerticalWidget)] public class WidgetFortyFive { }
Vea también
Tareas
Cómo: Proporcionar metadatos para propiedades, métodos y eventos de componentes
Conceptos
Acceso a atributos personalizados
Recuperar información almacenada en atributos