Share via


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

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

Conceptos

Acceso a atributos personalizados

Recuperar información almacenada en atributos

Referencia

Attribute

Otros recursos

Asistencia al usuario sobre componentes