Compartir a través de


Cómo: Proporcionar descripciones de metadatos sobre los componentes

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 marcadores 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 atributos 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

  1. Determine cuáles son los atributos necesarios para el componente.

  2. 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

  1. Cree una clase que herede de Attribute.

    Public Class WidgetAttribute
       Inherits System.Attribute
    End Class
    
    public class WidgetAttribute: System.Attribute
    {
    }
    
  2. 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 deAttributeUsageAttribute establece qué codifican miembros que el atributo puede establecer.

    <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;
          }
    }
    
  3. 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

Referencia

Attribute

Conceptos

Acceso a atributos personalizados

Recuperar información almacenada en atributos

Otros recursos

Asistencia al usuario sobre componentes