Stosowanie atrybutów

W celu zastosowania atrybutu do elementu kodu należy wykonać procedurę opisaną poniżej.

  1. Zdefiniuj nowy atrybut lub użyj istniejącego atrybutu .NET.

  2. Zastosuj atrybut do elementu kodu, umieszczając go bezpośrednio przed elementem.

    Każdy język ma własną składnię atrybutów. W językach C++ i C# atrybut jest ujęty w nawiasy kwadratowe i oddzielony od elementu znakiem odstępu, który może zawierać znak podziału wiersza. W języku Visual Basic atrybut jest ujęty w nawiasy kątowe i musi się znajdować w tym samym wierszu logicznym. Jeśli trzeba użyć podziału wiersza, można wstawić znak kontynuacji wiersza.

  3. Określ parametry pozycyjne i nazwane atrybutu.

    Parametry pozyacyjne są wymagane i muszą znajdować się przed nazwanych parametrów; Odpowiadają one parametrom jednego z konstruktorów atrybutu. Nazwane parametry są opcjonalne i odpowiadają właściwościom odczytu/zapisu atrybutu. W językach C++ i C# określ dla name=value każdego opcjonalnego parametru, gdzie name to nazwa właściwości. W Visual Basic określ wartość name:=value .

Atrybut jest emitowany do metadanych podczas kompilowania kodu. Jego udostępnianie środowisku uruchomieniowemu języka wspólnego i niestandardowym narzędziom lub aplikacjom odbywa się za pośrednictwem usług odbicia środowiska uruchomieniowego.

Zgodnie z konwencją wszystkie nazwy atrybutów kończą się na "Attribute". Jednak niektóre języki przeznaczone dla tego środowiska uruchomieniowego, np. Visual Basic i C#, nie wymagają określania pełnej nazwy atrybutu. Jeśli na przykład chcesz zainicjować , wystarczy odwołać się do niego System.ObsoleteAttribute jako Przestarzałe.

Stosowanie atrybutu do metody

Poniższy przykład kodu pokazuje, jak używać funkcji System.ObsoleteAttribute, która oznacza kod jako przestarzały. Ciąg tekstowy "Will be removed in next version" jest przekazywany do atrybutu. Atrybut sprawia, że podczas wywoływania kodu opisywanego przez atrybut kompilator generuje ostrzeżenie pokazujące przekazany ciąg.

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

Stosowanie atrybutów na poziomie zestawu

Jeśli chcesz zastosować atrybut na poziomie zestawu, użyj słowa kluczowego assembly ( Assembly w Visual Basic). Poniższy kod przedstawia assemblyTitleAttribute zastosowany na poziomie zestawu.

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

Zastosowanie tego atrybutu sprawia, że w manifeście zestawu w części pliku określającej metadane jest umieszczany ciąg "My Assembly". Atrybut można wyświetlić przy użyciu desembaliatora MSIL (Ildasm.exe) lub przez utworzenie niestandardowego programu do pobierania atrybutu.

Zobacz też