Condividi tramite


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 all'elemento di codice posizionandolo immediatamente prima dell'elemento .

    Ogni linguaggio ha la propria sintassi degli attributi. In C++ e C#, l'attributo è racchiuso tra parentesi quadre e separato dall'elemento da uno spazio vuoto, che può includere un'interruzione di riga. In Visual Basic l'attributo è racchiuso tra parentesi angolari e deve trovarsi nella stessa linea logica; Se si desidera un'interruzione di riga, è possibile utilizzare il carattere di continuazione della riga.

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

    I parametri posizionali sono obbligatori e devono venire prima di qualsiasi parametro denominato; corrispondono ai parametri di uno dei costruttori dell'attributo. I parametri denominati sono facoltativi e corrispondono alle proprietà di lettura/scrittura dell'attributo. In C++ e C# specificare name=value per ogni parametro facoltativo, dove name è il nome della proprietà. In Visual Basic si può specificare name:=value.

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

Per convenzione, tutti i nomi degli attributi terminano con "Attribute". Tuttavia, diversi linguaggi destinati al runtime, ad esempio Visual Basic e C#, non richiedono di specificare il nome completo di un attributo. Ad esempio, se si vuole inizializzare System.ObsoleteAttribute, è sufficiente farvi riferimento come Obsoleto.

Applicare un attributo a un metodo

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

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 desidera applicare un attributo a livello di assembly, usare la assembly parola chiave (Assembly in Visual Basic). Il codice seguente mostra l'oggetto AssemblyTitleAttribute applicato a livello di 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 parte dei metadati del file. È possibile visualizzare l'attributo usando il disassembler IL (Ildasm.exe) o creando un programma personalizzato per recuperare l'attributo.

Vedere anche