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

  1. Fügen Sie zu Beginn des Quellcodes eine Imports-Anweisung ein, um die Attribute-Klasse aus dem System-Namespace zu importieren:

    Imports System.Attribute
    
  2. Erstellen Sie eine Prozedur, um das Attribut abzurufen:

    Sub RetrieveAttribute()
    
    End Sub
    
  3. 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
    
  4. Ü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)
    
  5. 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)
    
  6. Ü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

Anwendung von Attributen

Abrufen von Informationen aus Attributen

Referenz

GetCustomAttribute

GetCustomAttributes

GetType-Operator

CType-Funktion

IsNothing-Funktion

GetAttr-Funktion

AttributeUsageAttribute