Gewusst wie: Abrufen benutzerdefinierter Attribute
Aktualisiert: November 2007
Sie können benutzerdefinierte Attribute mit der GetCustomAttribute-Methode oder der GetCustomAttributes-Methode der Attribute-Klasse abrufen.
So rufen Sie eine einzelne Instanz eines benutzerdefinierten Attributs aus einer Klasse ab
Fügen Sie zu Beginn des Quellcodes eine Imports-Anweisung ein, um die Attribute-Klasse aus dem System-Namespace zu importieren:
Imports System.Attribute
Erstellen Sie eine Prozedur, um das Attribut abzurufen:
Sub RetrieveAttribute() End Sub
Deklarieren Sie innerhalb der Prozedur eine Variable vom Typ Attribute und eine weitere Variable, die über denselben Typ verfügt wie das abzurufende Attribut:
Dim Attr As Attribute Dim CustAttr As CustomAttribute
Übergeben Sie mit dem GetType-Operator den Klassen- und Attributtyp an einen Aufruf der GetCustomAttribute-Methode, und weisen Sie den zurückgegebenen Wert anschließend der als Attribute deklarierten Variablen zu:
Attr = GetCustomAttribute(Me.GetType, _ GetType(CustomAttribute), False)
Verwenden Sie die CType-Funktion, um den Datentyp des Attributs von einem generischen Attribut in das spezifische Attribut des Typs zu konvertieren, den Sie abgerufen haben. Weisen Sie das Ergebnis anschließend der Variablen zu, die als benutzerdefinierter Attributtyp deklariert wurde:
CustAttr = CType(Attr, CustomAttribute)
Überprüfen Sie, ob das Attribut abgerufen wurde, und wenn dem so ist, verwenden Sie seine Felder, Eigenschaften und Methoden:
If CustAttr Is Nothing Then MsgBox("The attribute was not found.") Else 'Get the label and value from the custom attribute. MsgBox("The attribute label is: " & CustAttr.Label) MsgBox("The attribute value is: " & CustAttr.Value) End If
Im obigen Beispiel ruft die RetrieveAttribute-Prozedur die GetCustomAttribute-Methode der System.Attribute-Klasse auf, um das benutzerdefinierte Attribut abzurufen, das auf die Klasse ThisClass angewendet wurde. Da GetCustomAttribute eine freigegebene Methode ist, müssen Sie nicht zuerst eine Instanz von System.Attribute erstellen. Die CType-Funktion konvertiert das zurückgegebene Attribut vom Typ System.Attribute in den benutzerdefinierten Attributtyp CustomAttribute.
Siehe auch
Aufgaben
Gewusst wie: Definieren eigener Attribute
Konzepte
Abrufen von Informationen aus Attributen