Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Erstellen benutzerdefinierter Attribute (C# und Visual Basic)

Sie können eigene benutzerdefinierte Attribute erstellen, indem Sie eine Attributklasse definieren. Dies ist eine Klasse, die direkt oder indirekt Elemente von Attribute ableitet, wodurch die schnelle und einfache Identifikation von Attributdefinitionen in Metadaten ermöglicht wird. Angenommen, Sie möchten Typen mit dem Namen des Programmierers kennzeichnen, der den Typ erstellt hat. Sie könnten beispielsweise eine benutzerdefinierte Author-Attributklasse definieren:


[System.AttributeUsage(System.AttributeTargets.Class |
                       System.AttributeTargets.Struct)
]
public class Author : System.Attribute
{
    private string name;
    public double version;

    public Author(string name)
    {
        this.name = name;
        version = 1.0;
    }
}


Der Klassenname entspricht dem Attributnamen, also Author. Da er von System.Attribute abgeleitet ist, handelt es sich um eine benutzerdefinierte Attributklasse. Als Parameter des Konstruktors werden die Positionsparameter des benutzerdefinierten Attributs verwendet. In diesem Beispiel ist name ein Positionsparameter. Alle öffentlichen Schreib-Lese-Felder oder -Eigenschaften sind benannte Parameter. In diesem Fall ist version der einzige benannte Parameter. Das AttributeUsage-Attribut wird verwendet, um die Gültigkeit des Author-Attributs auf Klassen- und struct- (in Visual Basic Structure-)Deklarationen zu beschränken.

Das neue Attribut könnte wie folgt verwendet werden:


[Author("P. Ackerman", version = 1.1)]
class SampleClass
{
    // P. Ackerman's code goes here...
}


AttributeUsage verfügt über den benannten Parameter AllowMultiple, mit dem ein benutzerdefiniertes Attribut für die einfache oder mehrfache Verwendung konfiguriert werden kann. Im folgenden Codebeispiel wird ein mehrfach verwendbares Attribut erstellt.


[System.AttributeUsage(System.AttributeTargets.Class |
                       System.AttributeTargets.Struct,
                       AllowMultiple = true)  // multiuse attribute
]
public class Author : 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...
}


Hinweis Hinweis

Wenn die Attributklasse eine Eigenschaft enthält, muss diese Eigenschaft Lese-Schreib-Zugriff bieten.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft