Applicare attributi
Usare il processo seguente per applicare un attributo a un elemento del codice.
Definire un nuovo attributo o usare un attributo .NET esistente.
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.
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 cuiname
è il nome della proprietà. In Visual Basic specificarename:=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.