Creating Custom Attributes (Visual Basic) (Erstellen benutzerdefinierter Attribute (Visual Basic))
Sie können eigene benutzerdefinierte Attribute erstellen, indem Sie eine Attributklasse definieren. Dies ist eine Klasse, die direkt oder indirekt von Attribute abgeleitet wird, was es einfach macht, schnell Attributdefinitionen in Metadaten zu identifizieren. Angenommen, Sie möchten Typen mit dem Namen des Programmierers markieren, der den Typ geschrieben hat. Sie definieren möglicherweise eine benutzerdefinierte Author
-Attributklasse:
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct)>
Public Class Author
Inherits System.Attribute
Private name As String
Public version As Double
Sub New(ByVal authorName As String)
name = authorName
version = 1.0
End Sub
End Class
Der Klassenname ist der Attributname, Author
. Er ist von System.Attribute
abgeleitet, ist also eine benutzerdefinierte Attributklasse. Die Parameter des Konstruktors sind die Positionsparameter des benutzerdefinierten Attributs. In diesem Beispiel ist name
ein Positionsparameter. Alle öffentlichen Lese-/Schreibfelder oder -Eigenschaften werden Parameter genannt. In diesem Fall ist version
der einzige Parameter mit Namen. Beachten Sie die Verwendung des AttributeUsage
-Attributs, um das Author
-Attribut ausschließlich für Klassen- und Structure
-Deklarationen gültig zu machen.
Sie könnten dieses neue Attribut wie folgt verwenden:
<Author("P. Ackerman", Version:=1.1)>
Class SampleClass
' P. Ackerman's code goes here...
End Class
AttributeUsage
verfügt über einen Parameter, AllowMultiple
, mit dem Sie ein benutzerdefiniertes Attribut zur einmaligen oder mehrfachen Nutzung erstellen können. Im folgenden Codebeispiel wird ein mehrfach verwendbares Attribut erstellt.
' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct,
AllowMultiple:=True)>
Public Class Author
Inherits System.Attribute
Im folgenden Codebeispiel werden mehrere Attribute desselben Typs auf eine Klasse angewendet.
<Author("P. Ackerman", Version:=1.1),
Author("R. Koch", Version:=1.2)>
Class SampleClass
' P. Ackerman's code goes here...
' R. Koch's code goes here...
End Class
Hinweis
Wenn die Attributklasse eine Eigenschaft enthält, muss die Eigenschaft Lese- und Schreibberechtigung aufweisen.
Siehe auch
- System.Reflection
- Visual Basic-Programmierhandbuch
- Verfassen von benutzerdefinierten Attributen
- Reflektion (Visual Basic)
- Attribute (Visual Basic)
- Accessing Attributes by Using Reflection (Visual Basic) (Zugreifen auf Attribute mithilfe der Reflektion (Visual Basic))
- AttributeUsage (Visual Basic)