Anwenden von AttributenApplying Attributes

Mit dem folgenden Verfahren wenden Sie ein Attribut auf ein Codeelement an.Use the following process to apply an attribute to an element of your code.

  1. Definieren Sie ein neues Attribut, oder verwenden Sie ein vorhandenes Attribut, indem Sie den entsprechenden Namespace aus .NET Framework importieren.Define a new attribute or use an existing attribute by importing its namespace from the .NET Framework.

  2. Wenden Sie das Attribut auf das Codeelement an, indem Sie es direkt vor dem Element platzieren.Apply the attribute to the code element by placing it immediately before the element.

    Jede Sprache verfügt über eine eigene Attributsyntax.Each language has its own attribute syntax. In C++ und C# ist das Attribut von eckigen Klammern umgeben und durch einen Leerraum, der einen Zeilenumbruch umfassen kann, vom Element getrennt.In C++ and C#, the attribute is surrounded by square brackets and separated from the element by white space, which can include a line break. 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 Visual Basic, the attribute is surrounded by angle brackets and must be on the same logical line; the line continuation character can be used if a line break is desired.

  3. Geben Sie positionelle Parameter und benannte Parameter für das Attribut an.Specify positional parameters and named parameters for the attribute.

    Positionelle Parameter sind erforderlich und müssen vor benannten Parametern stehen. Sie entsprechen den Parametern eines der Attributkonstruktoren.Positional parameters are required and must come before any named parameters; they correspond to the parameters of one of the attribute's constructors. Benannte Parameter sind optional und entsprechen Lese-/Schreibeigenschaften des Attributs.Named parameters are optional and correspond to read/write properties of the attribute. Geben Sie in C++ und C# für jeden optionalen Parameter name=value an, wobei name der Name der Eigenschaft ist.In C++, and C#, specify name=value for each optional parameter, where name is the name of the property. In Visual Basic geben Sie name:=value an.In Visual Basic, specify name:=value.

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.The attribute is emitted into metadata when you compile your code and is available to the common language runtime and any custom tool or application through the runtime reflection services.

Attributnamen enden üblicherweise auf "Attribute".By convention, all attribute names end with Attribute. Verschiedene Sprachen, die die Laufzeit unterstützen, z. B. Visual Basic und C#, erfordern jedoch nicht die vollständige Angabe eines Attributnamens.However, several languages that target the runtime, such as Visual Basic and C#, do not require you to specify the full name of an attribute. Wenn Sie z.B. System.ObsoleteAttribute initialisieren möchten, müssen Sie lediglich mit Veraltet darauf verweisen.For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

Anwenden eines Attributs auf eine MethodeApplying an Attribute to a Method

Im folgenden Codebeispiel wird die Deklaration von System.ObsoleteAttribute dargestellt, mit dem Code als veraltet gekennzeichnet werden kann.The following code example shows how to declare System.ObsoleteAttribute, which marks code as obsolete. Die Zeichenfolge "Will be removed in next version" wird an das Attribut übergeben.The string "Will be removed in next version" is passed to the attribute. Dieses Attribut löst eine Compilerwarnung aus. Wenn vom Attribut beschriebener Code aufgerufen wird, wird die übergebene Zeichenfolge angezeigt.This attribute causes a compiler warning that displays the passed string when code that the attribute describes is called.

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 AssemblyebeneApplying Attributes at the Assembly Level

Wenn Sie ein Attribut auf Assemblyebene anwenden möchten, verwenden Sie das Schlüsselwort assembly (Assembly in Visual Basic).If you want to apply an attribute at the assembly level, use the assembly (Assembly in Visual Basic) keyword. Im folgenden Codebeispiel wird AssemblyTitleAttribute auf Assemblyebene angewendet.The following code shows the AssemblyTitleAttribute applied at the assembly level.

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.When this attribute is applied, the string "My Assembly" is placed in the assembly manifest in the metadata portion of the file. Sie können das Attribut entweder mithilfe des MSIL-Disassemblers (Ildasm.exe) anzeigen lassen oder ein benutzerdefiniertes Programm erstellen, um das Attribut abzurufen.You can view the attribute either by using the MSIL Disassembler (Ildasm.exe) or by creating a custom program to retrieve the attribute.

Siehe auchSee also