Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Attribute bieten eine leistungsstarke Methode zum Zuordnen von Metadaten oder deklarativen Informationen mit Code (Assemblys, Typen, Methoden, Eigenschaften usw.). Nachdem ein Attribut einer Programmentität zugeordnet ist, kann das Attribut zur Laufzeit abgefragt werden, indem eine Technik namens Reflectionverwendet wird. Weitere Informationen finden Sie unter Reflection (Visual Basic).
Attribute weisen die folgenden Eigenschaften auf:
Attribute fügen Ihrem Programm Metadaten hinzu. Metadaten- sind Informationen zu den in einem Programm definierten Typen. Alle .NET-Assemblys enthalten einen angegebenen Satz von Metadaten, der die Typen und Typmember beschreibt, die in der Assembly definiert sind. Sie können benutzerdefinierte Attribute hinzufügen, um zusätzliche Informationen anzugeben, die erforderlich sind. Weitere Informationen finden Sie unter Erstellen von benutzerdefinierten Attributen (Visual Basic).
Sie können ein oder mehrere Attribute auf ganze Assemblys, Module oder kleinere Programmelemente wie Klassen und Eigenschaften anwenden.
Attribute können Argumente auf die gleiche Weise akzeptieren wie Methoden und Eigenschaften.
Ihr Programm kann seine eigenen Metadaten oder die Metadaten in anderen Programmen mithilfe der Reflexion untersuchen. Weitere Informationen finden Sie unter Zugreifen auf Attribute mithilfe von Reflection (Visual Basic).For more information, see Accessing Attributes by Using Reflection (Visual Basic).
Verwenden von Attributen
Attribute können für die meisten Deklarationen platziert werden, ein bestimmtes Attribut kann jedoch die Typen von Deklarationen einschränken, für die sie gültig ist. In Visual Basic wird ein Attribut in winkelige Klammern (<>) eingeschlossen. Es muss unmittelbar vor dem Element, auf das es angewendet wird, in derselben Zeile angezeigt werden.
In diesem Beispiel wird das attribut SerializableAttribute verwendet, um ein bestimmtes Merkmal auf eine Klasse anzuwenden:
<System.Serializable()> Public Class SampleClass
' Objects of this type can be serialized.
End Class
Eine Methode mit dem Attribut DllImportAttribute wird wie folgt deklariert:
Imports System.Runtime.InteropServices
<System.Runtime.InteropServices.DllImport("user32.dll")>
Sub SampleMethod()
End Sub
Mehrere Attribute können in einer Deklaration platziert werden:
Imports System.Runtime.InteropServices
Sub MethodA(<[In](), Out()> ByVal x As Double)
End Sub
Sub MethodB(<Out(), [In]()> ByVal x As Double)
End Sub
Einige Attribute können für eine bestimmte Entität mehrmals angegeben werden. Ein Beispiel für ein solches Attribut mit mehrfacher Verwendung ist ConditionalAttribute:
<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub
Hinweis
Standardmäßig enden alle Attributnamen mit dem Wort "Attribut", um sie von anderen Elementen im .NET Framework zu unterscheiden. Sie müssen jedoch nicht das Attributsuffix angeben, wenn Sie Attribute im Code verwenden. Zum Beispiel ist [DllImport]
gleichwertig mit [DllImportAttribute]
, aber DllImportAttribute
ist der tatsächliche Name des Attributs im .NET Framework.
Attributparameter
Viele Attribute weisen Parameter auf, die positional, unbenannt der benannt sein können. Alle Positionsparameter müssen in einer bestimmten Reihenfolge angegeben werden und können nicht weggelassen werden. benannte Parameter sind optional und können in beliebiger Reihenfolge angegeben werden. Positionsparameter werden zuerst angegeben. Diese drei Attribute sind z. B. gleichwertig:
<DllImport("user32.dll")>
<DllImport("user32.dll", SetLastError:=False, ExactSpelling:=False)>
<DllImport("user32.dll", ExactSpelling:=False, SetLastError:=False)>
Der erste Parameter, der DLL-Name, ist positional und kommt immer zuerst; die anderen benannt werden. In diesem Fall werden beide benannten Parameter standardmäßig auf "false" festgelegt, sodass sie weggelassen werden können. Informationen zu Standardwerten finden Sie in der Dokumentation des jeweiligen Attributs.
Attributziele
Das Ziel eines Attributs ist die Entität, auf die das Attribut angewendet wird. Ein Attribut kann beispielsweise auf eine Klasse, eine bestimmte Methode oder eine gesamte Assembly angewendet werden. Standardmäßig gilt ein Attribut für das element, das ihm vorangestellt ist. Sie können aber auch explizit identifizieren, ob ein Attribut auf eine Methode oder auf seinen Parameter oder auf den Rückgabewert angewendet wird.
Verwenden Sie die folgende Syntax, um ein Attributziel explizit zu identifizieren:
<target : attribute-list>
Die Liste der möglichen target
Werte ist in der folgenden Tabelle dargestellt.
Zielwert | Gilt für: |
---|---|
assembly |
Gesamte Assembly |
module |
Aktuelles Assemblymodul (das sich von einem Visual Basic-Modul unterscheidet) |
Das folgende Beispiel zeigt, wie Attribute auf Assemblys und Module angewendet werden. Weitere Informationen finden Sie unter Common Attributes (Visual Basic).
Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>
Allgemeine Verwendungen für Attribute
Die folgende Liste enthält einige der allgemeinen Verwendungen von Attributen im Code:
Kennzeichnen von Methoden mithilfe des attributs
WebMethod
in Webdiensten, um anzugeben, dass die Methode über das SOAP-Protokoll aufgerufen werden kann. Weitere Informationen finden Sie unter WebMethodAttribute.Beschreiben, wie Methodenparameter bei der Interaktion mit systemeigenem Code gemarshallt werden sollen. Weitere Informationen finden Sie unter MarshalAsAttribute.
Beschreiben der COM-Eigenschaften für Klassen, Methoden und Schnittstellen.
Aufrufen von nicht verwalteten Code mithilfe der DllImportAttribute Klasse.
Beschreiben der Assembly im Hinblick auf Titel, Version, Beschreibung oder Marke.
Beschreiben, welche Member einer Klasse zur Verbesserung der Dauerhaftigkeit serialisiert werden müssen.
Beschreibung der Zuordnung zwischen Klassenmitgliedern und XML-Knoten für die XML-Serialisierung.
Beschreiben der Sicherheitsanforderungen für Methoden.
Angeben von Merkmalen, die zum Erzwingen der Sicherheit verwendet werden.
Steuern von Optimierungen durch den Just-in-Time-Compiler (JIT), sodass der Code einfach zu debuggen bleibt.
Abrufen von Informationen zum Aufrufer einer Methode.
Verwandte Abschnitte
Weitere Informationen finden Sie unter:
Zugreifen auf Attribute mithilfe von Reflection (Visual Basic)
Vorgehensweise: Erstellen einer C/C++-Union mithilfe von Attributen (Visual Basic)