Condividi tramite


Procedura: specificare descrizioni di metadati relative al componente

L'uso di attributes consente di fornire metadati descrittivi relativi al componente. Gli attributi sono classi specializzate che vengono applicate agli elementi di codice. In fase di compilazione gli attributi vengono emessi nei metadati disponibili per Common Language Runtime o per le applicazioni e gli strumenti personalizzati mediante lo spazio dei nomi System.Reflection.

Gli attributi vengono associati a un componente facendo precedere il componente da un riferimento all'attributo e fornendo parametri o flag importanti. Questa chiamata al costruttore viene inserita tra parentesi angolari <> in Visual Basic e tra parentesi quadre [] in C#.

Di norma, tutte le classi di attributi terminano con "Attribute". Un esempio è rappresentato dalle classi DescriptionAttribute, ObsoleteAttribute e BrowsableAttribute. Tuttavia, in diversi linguaggi destinati a Common Language Runtime, compresi Visual Basic e C#, non è necessario specificare il nome intero dell'attributo. Nel codice è possibile ad esempio fare riferimento a ObsoleteAttribute usando Obsolete.

Per associare un attributo esistente al componente

  1. Determinare gli attributi necessari per il componente.

  2. Associare gli attributi al componente. Si noti che è necessario utilizzare il nome completo dell'attributo o aggiungere l'istruzione Imports (using) appropriata. Nell'esempio riportato di seguito viene illustrato come associare l'attributo 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
    {
    }
    

Attributi personalizzati

È anche possibile creare attributi personalizzati da utilizzare con le applicazioni o gli strumenti personalizzati ereditando dalla classe Attribute. A questa classe base è possibile aggiungere tutte le proprietà o i metodi personalizzati necessari per l'applicazione.

Per creare e applicare un attributo personalizzato

  1. Creare una classe che eredita da Attribute.

    Public Class WidgetAttribute
       Inherits System.Attribute
    End Class
    
    public class WidgetAttribute: System.Attribute
    {
    }
    
  2. Determinare le proprietà e i metodi richiesti dall'attributo e scrivere il codice corrispondente. Nell'esempio riportato di seguito viene descritto come creare una proprietà WidgetType impostata nel costruttore della classe WidgetAttribute. I set di attributiAttributeUsageAttribute che i membri dell'attributo come destinazione.

    <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. Applicare questo attributo come si farebbe con qualunque altro attributo, utilizzando tutti i parametri necessari.

    <WidgetAttribute(WidgetTypeEnum.VerticalWidget)> _
       Public Class WidgetFortyFive
    End Class
    
    [WidgetAttribute(WidgetTypeEnum.VerticalWidget)]
    public class WidgetFortyFive
    {
    }
    

Vedere anche

Attività

Procedura: specificare metadati per proprietà, metodi ed eventi di un componente

Riferimenti

Attribute

Concetti

Accesso ad attributi personalizzati

Recupero di informazioni memorizzate negli attributi

Altre risorse

Documentazione relativa ai componenti