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
Determinare gli attributi necessari per il componente.
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
Creare una classe che eredita da Attribute.
Public Class WidgetAttribute Inherits System.Attribute End Class
public class WidgetAttribute: System.Attribute { }
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; } }
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
Concetti
Accesso ad attributi personalizzati
Recupero di informazioni memorizzate negli attributi