Applicare attributi

Usare il processo seguente per applicare un attributo a un elemento del codice.

  1. Definire un nuovo attributo o usare un attributo .NET esistente.

  2. Applicare l'attributo dell'elemento di codice posizionandolo immediatamente prima dell'elemento.

    Ogni linguaggio ha una propria sintassi di attributo. In C++ e C#, l'attributo è racchiuso tra parentesi quadre e separato dall'elemento da spazi vuoti, che possono includere un'interruzione di riga. In Visual Basic, l'attributo è racchiuso tra parentesi acute e deve essere nella stessa riga logica. Se si desidera un'interruzione di riga, è possibile usare il carattere di continuazione di riga.

  3. Specificare i parametri posizionali e i parametri denominati per l'attributo.

    I parametri posizionali sono obbligatori e devono precedere eventuali parametri denominati. Corrispondono ai parametri di uno dei costruttori dell'attributo. I parametri denominati sono facoltativi e corrispondono a proprietà dell'attributo di lettura/scrittura. In C++ e C# specificare name=value per ciascun parametro facoltativo, in cui name è il nome della proprietà. In Visual Basic specificare name:=value.

L'attributo viene emesso nei metadati quando si compila il codice ed è disponibile per il Common Language Runtime e qualsiasi strumento personalizzato o l'applicazione tramite i servizi di reflection di runtime.

Per convenzione, tutti i nomi dell'attributo terminano con "Attribute". Tuttavia, per molti linguaggi destinati al runtime, come Visual Basic e C#, non è necessario specificare il nome completo di un attributo. Ad esempio, se si desidera inizializzare System.ObsoleteAttribute, è necessario farvi riferimento come Obsolete.

Applicare un attributo a un metodo

L'esempio di codice seguente illustra come usare System.ObsoleteAttribute, che contrassegna il codice come obsoleto. La stringa "Will be removed in next version" viene passato all'attributo. Questo attributo genera un avviso del compilatore che mostra la stringa passata quando viene chiamato il codice descritto dall'attributo.

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

Applicare attributi a livello di assembly

Se si vuole applicare un attributo a livello di assembly, usare la parola chiave assembly (Assembly in Visual Basic). Nel codice riportato di seguito viene illustrato l'attributo AssemblyTitleAttribute applicato a livello di assembly.

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

Quando viene applicato questo attributo, la stringa "My Assembly" viene inserita nel manifesto dell'assembly nella porzione di metadati del file. È possibile visualizzare l'attributo tramite il Disassemblatore del linguaggio intermedio (Ildasm.exe) o creando un programma personalizzato per recuperare l'attributo.

Vedi anche