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 .NET-Attribut.

  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.

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

    Positionsparameter sind erforderlich und müssen Priorität gegenüber benannten Parametern haben. Sie entsprechen den Parametern eines der Attributkonstruktoren. Benannte Parameter sind optional und entsprechen Lese-/Schreibeigenschaften des Attributs. Geben Sie in C++ und C# für jeden optionalen Parameter name=value an, wobei name der Name der Eigenschaft ist. Geben Sie in Visual Basic 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 Veraltet darauf verweisen.

Anwenden eines Attributs auf eine Methode

Im folgenden Codebeispiel wird die Verwendung des Attributs 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 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();
}
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 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

Anwenden von Attributen auf Assemblyebene

Wenn Sie ein Attribut auf Assemblyebene anwenden möchten, verwenden Sie das Schlüsselwort assembly (Assembly in Visual Basic). Im folgenden Codebeispiel wird AssemblyTitleAttribute auf Assemblyebene angewendet.

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

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

Weitere Informationen