Applicazione di attributiApplying Attributes

Usare il processo seguente per applicare un attributo a un elemento del codice.Use the following process to apply an attribute to an element of your code.

  1. Definire un nuovo attributo o usare un attributo esistente importando lo spazio dei nomi da .NET Framework.Define a new attribute or use an existing attribute by importing its namespace from the .NET Framework.

  2. Applicare l'attributo dell'elemento di codice posizionandolo immediatamente prima dell'elemento.Apply the attribute to the code element by placing it immediately before the element.

    Ogni linguaggio ha una propria sintassi di attributo.Each language has its own attribute syntax. 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 C++ and C#, the attribute is surrounded by square brackets and separated from the element by white space, which can include a line break. 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.In Visual Basic, the attribute is surrounded by angle brackets and must be on the same logical line; the line continuation character can be used if a line break is desired.

  3. Specificare i parametri posizionali e i parametri denominati per l'attributo.Specify positional parameters and named parameters for the attribute.

    I parametri posizionali sono necessari e devono precedere eventuali parametri denominati. Corrispondono ai parametri di uno dei costruttori dell'attributo.Positional parameters are required and must come before any named parameters; they correspond to the parameters of one of the attribute's constructors. I parametri denominati sono facoltativi e corrispondono a proprietà dell'attributo di lettura/scrittura.Named parameters are optional and correspond to read/write properties of the attribute. In C++ e C# specificare name=value per ciascun parametro facoltativo, in cui name è il nome della proprietà.In C++, and C#, specify name=value for each optional parameter, where name is the name of the property. In Visual Basic specificare name:=value.In Visual Basic, specify 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.The attribute is emitted into metadata when you compile your code and is available to the common language runtime and any custom tool or application through the runtime reflection services.

Per convenzione, tutti i nomi dell'attributo terminano con Attribute.By convention, all attribute names end with Attribute. Tuttavia, per molti linguaggi destinati al runtime, come Visual Basic e C#, non è necessario specificare il nome completo di un attributo.However, several languages that target the runtime, such as Visual Basic and C#, do not require you to specify the full name of an attribute. Ad esempio, se si desidera inizializzare System.ObsoleteAttribute, è necessario farvi riferimento come Obsolete.For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

Applicazione di un attributo a un metodoApplying an Attribute to a Method

L'esempio di codice seguente illustra come dichiarare System.ObsoleteAttribute, che marca il codice come obsoleto.The following code example shows how to declare System.ObsoleteAttribute, which marks code as obsolete. La stringa "Will be removed in next version" viene passato all'attributo.The string "Will be removed in next version" is passed to the attribute. Questo attributo genera un avviso del compilatore che mostra la stringa passata quando viene chiamato il codice descritto dall'attributo.This attribute causes a compiler warning that displays the passed string when code that the attribute describes is called.

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

Applicazione di attributi a livello di assemblyApplying Attributes at the Assembly Level

Se si desidera applicare un attributo a livello di assembly usare la parola chiave assembly (Assembly in Visual Basic).If you want to apply an attribute at the assembly level, use the assembly (Assembly in Visual Basic) keyword. Nel codice riportato di seguito viene illustrato l'attributo AssemblyTitleAttribute applicato a livello di assembly.The following code shows the AssemblyTitleAttribute applied at the assembly level.

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.When this attribute is applied, the string "My Assembly" is placed in the assembly manifest in the metadata portion of the file. È possibile visualizzare l'attributo tramite Disassembler MSIL (Ildasm.exe) o creando un programma personalizzato per recuperare l'attributo.You can view the attribute either by using the MSIL Disassembler (Ildasm.exe) or by creating a custom program to retrieve the attribute.

Vedere ancheSee Also

AttributiAttributes
Recupero di informazioni memorizzate negli attributiRetrieving Information Stored in Attributes
ConcettiConcepts
AttributiAttributes