Share via


Använda attribut

Använd följande process för att tillämpa ett attribut på ett element i koden.

  1. Definiera ett nytt attribut eller använd ett befintligt .NET-attribut.

  2. Tillämpa attributet på kodelementet genom att placera det omedelbart före elementet.

    Varje språk har sin egen attributsyntax. I C++ och C# omges attributet av hakparenteser och avgränsas från elementet med tomt utrymme, vilket kan innehålla en radbrytning. I Visual Basic omges attributet av vinkelparenteser och måste finnas på samma logiska linje. radfortsättningstecknet kan användas om en radbrytning önskas.

  3. Ange positionsparametrar och namngivna parametrar för attributet.

    Positionsparametrar krävs och måste komma före namngivna parametrar. De motsvarar parametrarna för en av attributets konstruktorer. Namngivna parametrar är valfria och motsvarar läs-/skrivegenskaper för attributet. I C++, och C#, anger du name=value för varje valfri parameter, där name är namnet på egenskapen. I Visual Basic anger du name:=value.

Attributet genereras i metadata när du kompilerar koden och är tillgängligt för den gemensamma språkkörningen och alla anpassade verktyg eller program via tjänsterna för körningsreflektion.

Enligt konventionen slutar alla attributnamn med "Attribut". Flera språk som är inriktade på körningen, till exempel Visual Basic och C#, kräver dock inte att du anger det fullständiga namnet på ett attribut. Om du till exempel vill initiera System.ObsoleteAttributebehöver du bara referera till den som föråldrad.

Tillämpa ett attribut på en metod

I följande kodexempel visas hur du använder System.ObsoleteAttribute, som markerar kod som föråldrad. Strängen "Will be removed in next version" skickas till attributet. Det här attributet orsakar en kompilatorvarning som visar den skickade strängen när kod som attributet beskriver anropas.

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

Tillämpa attribut på sammansättningsnivå

Om du vill använda ett attribut på sammansättningsnivå använder du nyckelordet assembly (Assembly i Visual Basic). Följande kod visar AssemblyTitleAttribute som tillämpas på sammansättningsnivå.

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

När det här attributet tillämpas placeras strängen "My Assembly" i sammansättningsmanifestet i metadatadelen av filen. Du kan visa attributet antingen med hjälp av IL Disassembler (Ildasm.exe) eller genom att skapa ett anpassat program för att hämta attributet.

Se även