Attribute verwenden

Abgeschlossen

Attribute repräsentieren oder speichern Metadaten zum Verhalten von Klassen und Methoden. Sie können ein Attribut anfügen, indem Sie einfach den Namen des Attributs in eckigen Klammern vor der Deklaration der Klasse/Funktion eingeben, auf die es angewendet werden soll.

Beispiel

Das Attribut SysObsoleteAttribute(message,setError) kann z. B. für Methoden oder Klassen verwendet werden, die nicht mehr genutzt werden sollen. Während des Erstellungsprozesses wird der Benutzer mit einer detaillierten Meldung benachrichtigt, die in den Ausgabefenstern angezeigt wird. Der erste Parameter ist die Meldung, und der zweite Parameter gibt an, ob ein Fehler (true) oder eine Warnung (false) festgelegt werden soll. Sie können eine Ablehnung oder die Anzeige einer Warnung durch den Compiler einstellen.

Wenn die API nicht mehr funktioniert, legen Sie isError = true im Attribut SysObsoleteAttribute fest, damit der Compiler jede Verwendung dieser API als Compilerfehler meldet.

 [SysObsoleteAttribute("The Automobile class might have faster performance.", false)]
 internal class Bicycle
 {
    // Members of the Bicycle class go here.
 }

Attributklassen

Attribute können auch mithilfe von Attributklassen erstellt werden. Um eine Attributklasse zu erstellen, erweitern Sie die Klasse SysAttribute, indem Sie am Ende der Klassendeklaration extend SysAttribute hinzufügen. Anschließend können Sie eine Klasse um das Attribut ergänzen, das aus der Attributklasse erstellt wurde. Sie können die Attributparameter im Konstruktor angeben. Im folgenden Code wird die Attributklasse PracticeAttribute erstellt. Anschließend verwendet die Klasse RegularClass PracticeAttribute als Attribut.

Beispiel

Das folgende Beispiel zeigt die Deklaration und den Entwurf einer gewöhnlichen Attributklasse, die Sie erstellen können.

 public class PracticeAttribute extends SysAttribute
 {
   // Fields in the classDeclaration.
   StartEnd startEndEnum;
   str reason;
 }
   // Constructor.
   public void new(StartEnd _startEndEnum, str _reason)
  {
    startEndEnum = _startEndEnum;
    reason = _reason;
  }
[PracticeAttribute(StartEnd::End, "Use the RegularClass class at the end.")]
 public class RegularClass
 {
    [PracticeAttribute(Startend::Start, "Use the rehearse method at the start.")]
	public int rehearse()
    {
      // Logic goes here.
        int rehearse;
        return rehearse;
    }
      // More fields and methods belong here.
 }

Attribute haben viele Verwendungszwecke, darunter die folgenden:

  • Verwendung des Attributs WebMethod in Webdiensten, das angibt, ob die Methode über das SOAP-Protokoll (Simple Object Access Protocol) aufgerufen werden kann, um Informationen auszutauschen.
  • Verwendung von DLLImportAttribute, um nicht verwalteten Code aufzurufen.
  • Beschreibung von Titel, Version, Beschreibung oder Marke einer Assembly.
  • Beschreibung der Zuordnung zwischen Klassen, Mitgliedern und XML-Knoten (eXtensible Markup Language) für die Serialisierung.
  • Beschreibung der Sicherheitsanforderungen für Methoden.
  • Festlegung von Merkmalen zur Durchsetzung der Sicherheit.
  • Abrufen von Informationen zum Aufrufer einer Methode.

Ressourcen

Unter Klassen und Methoden finden Sie dazu weitere Methoden.