Anwenden von Attributen

Mit dem folgenden Verfahren wenden Sie ein Attribut auf ein Codeelement an.

  1. Definieren Sie ein neues Attribut, oder verwenden Sie ein vorhandenes Attribut, indem Sie den entsprechenden Namespace aus .NET Framework importieren.

  2. Wenden Sie das Attribut auf das Codeelement an, indem Sie es direkt vor dem Element platzieren.

    Jede Sprache verfügt über eine eigene Attributsyntax. In C++ und C# ist das Attribut von eckigen Klammern umgeben und durch einen Leerraum, der einen Zeilenumbruch umfassen kann, vom Element getrennt. In Visual Basic ist das Attribut von spitzen Klammern umgeben, und es muss sich in derselben logischen Zeile befinden. Mithilfe des Zeilenfortsetzungszeichens kann bei Bedarf ein Zeilenumbruch eingefügt werden. In J# wird das Attribut mit einer besonderen Kommentarsyntax angefügt.

  3. Geben Sie positionelle Parameter und benannte Parameter für das Attribut an.

    Positionelle Parameter sind erforderlich und müssen vor benannten Parametern stehen. Sie entsprechen den Parametern eines der Attributkonstruktoren. Benannte Parameter sind optional und entsprechen Lese-/Schreibeigenschaften des Attributs. In C++, C# und J# geben Sie für jeden optionalen Parameter name=value an, wobei name der Name der Eigenschaft ist. In Visual Basic geben Sie name:=value an.

Das Attribut wird beim Kompilieren von Code in Metadaten ausgegeben und ist über die Reflexionsdienste der Laufzeit für die Common Language Runtime sowie beliebige weitere benutzerdefinierte Tools und Anwendungen verfügbar.

Attributnamen enden üblicherweise auf "Attribute". Verschiedene Sprachen, die die Laufzeit unterstützen, z. B. Visual Basic und C#, erfordern jedoch nicht die vollständige Angabe eines Attributnamens. Wenn Sie z. B. System.ObsoleteAttribute initialisieren möchten, müssen Sie lediglich mit Obsolete darauf verweisen.

Anwenden eines Attributs auf eine Methode

Im folgenden Codebeispiel wird die Deklaration von System.ObsoleteAttribute dargestellt, mit dem Code als veraltet gekennzeichnet werden kann. Die Zeichenfolge "Will be removed in next version" wird an das Attribut übergeben. Dieses Attribut löst eine Compilerwarnung aus. Wenn vom Attribut beschriebener Code aufgerufen wird, wird die übergebene Zeichenfolge angezeigt.

Public Class Example
    ' Specify attributes between square brackets in C#.
    ' This attribute is applied only to the Add method.
    <Obsolete("Will be removed in next version.")>
    Public Shared Function Add(a As Integer, b As Integer) As Integer
        Return a + b
    End Function
End Class

Class Test
    Public Shared Sub Main()
        ' This generates a compile-time warning.
        Dim i As Integer = Example.Add(2, 2)
    End Sub
End Class
public class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
    [Obsolete("Will be removed in next version.")]
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}

class Test
{
    public static void Main()
    {
        // This generates a compile-time warning.
        int i = Example.Add(2, 2);
    }
}
public ref class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
public:
    [Obsolete("Will be removed in next version.")]
    static int Add(int a, int b)
    {
        return (a + b);
    }
};

ref class Test
{
public:
    static void Main()
    {
        // This generates a compile-time warning.
        int i = Example::Add(2, 2);
    }
};

int main()
{
    Test::Main();
}

Anwenden von Attributen auf Assemblyebene

Wenn Sie ein Attribut auf Assemblyebene anwenden möchten, verwenden Sie das Schlüsselwort Assembly. Im folgenden Codebeispiel wird AssemblyNameAttribute auf Assemblyebene angewendet.

Imports System.Reflection
<Assembly:AssemblyTitle("My Assembly")>
using System.Reflection;
[assembly:AssemblyTitle("My Assembly")]
using namespace System::Reflection;
[assembly:AssemblyTitle("My Assembly")];

Beim Anwenden dieses Attributs wird die Zeichenfolge "MyAssembly" im Metadatenteil der Datei im Assemblymanifest platziert. Sie können das Attribut entweder mithilfe des MSIL Disassembler-Tools (Ildasm.exe) anzeigen lassen oder ein benutzerdefiniertes Programm erstellen, um das Attribut abzurufen.

Siehe auch

Referenz

Attribute (C# und Visual Basic)

Konzepte

Erweitern von Metadaten mithilfe von Attributen

Abrufen von Informationen aus Attributen

Weitere Ressourcen

Attributed Programming Concepts