Gewusst wie: Bereitstellen von Metadatenbeschreibungen zur Komponente
Aktualisiert: November 2007
Mithilfe von Attributen können Sie beschreibende Metadaten über die Komponente zur Verfügung stellen. Attribute sind spezialisierte Klassen, die auf Codeelemente angewendet werden. Beim Kompilieren werden Attribute in Metadaten ausgegeben, die über den System.Reflection-Namespace für die Common Language Runtime oder benutzerdefinierte Tools und Anwendungen verfügbar sind.
Attribute werden einer Komponente angehängt, indem der Komponente ein Verweis auf das Attribut vorangestellt wird und relevante Parameter oder Flags angegeben werden. Dieser Aufruf an den Konstruktor wird in Visual Basic in spitze Klammern <> und in C# in eckige Klammern [] gesetzt.
Attributklassen enden immer auf "Attribute". Ein Beispiel dafür liefern die Klassen DescriptionAttribute, ObsoleteAttribute und BrowsableAttribute. Bei vielen Sprachen, die auf die Common Language Runtime abzielen, einschließlich Visual Basic und C#, muss nicht der vollständige Name des Attributs angegeben werden. ObsoleteAttribute kann im Code beispielsweise als Obsolete vorkommen.
So fügen Sie der Komponente ein vorhandenes Attribut an
Ermitteln Sie, welche Attribute für die Komponente erforderlich sind.
Fügen Sie die Attribute an die Komponente an. Beachten Sie, dass Sie entweder den vollständigen Namen des Attributs verwenden oder die entsprechende Imports (using)-Anweisung hinzufügen müssen. Das folgende Beispiel veranschaulicht, wie das DescriptionAttribute-Attribut angehängt wird:
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 { }
Benutzerdefinierte Attribute
Sie können auch eigene Attribute erstellen, die von Attribute erben, und diese Attribute für benutzerdefinierte Tools oder Anwendungen verwenden. Dieser Basisklasse können beliebige benutzerdefinierte Eigenschaften oder Methoden hinzugefügt werden, die von der Anwendung benötigt werden.
So erstellen Sie ein benutzerdefiniertes Attribut und wenden es an
Erstellen Sie eine Klasse, die von Attribute erbt.
Public Class WidgetAttribute Inherits System.Attribute End Class
public class WidgetAttribute: System.Attribute { }
Ermitteln Sie, welche Eigenschaften und Methoden das Attribut benötigt, und schreiben Sie den Code dafür. Im folgenden Beispiel wird eine WidgetType-Eigenschaft erstellt, die im Konstruktor der WidgetAttribute-Klasse festgelegt wird. DasAttributeUsageAttribute-Attribut legt die Codemember fest, die als Ziel für das Attribut verwendet werden können.
<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; } }
Wenden Sie dieses Attribut wie ein beliebiges Attribut an. Achten Sie darauf, alle erforderlichen Parameter anzugeben.
<WidgetAttribute(WidgetTypeEnum.VerticalWidget)> _ Public Class WidgetFortyFive End Class
[WidgetAttribute(WidgetTypeEnum.VerticalWidget)] public class WidgetFortyFive { }
Siehe auch
Aufgaben
Gewusst wie: Bereitstellen von Metadaten für Eigenschaften, Methoden und Ereignisse von Komponenten
Konzepte
Zugreifen auf benutzerdefinierte Attribute
Abrufen von Informationen aus Attributen