Uso degli attributi
Gli attributi rappresentano o archiviano i metadati sui comportamenti di classi e metodi. Per collegare un attributo è sufficiente digitare il suo nome che è racchiuso tra parentesi quadre prima della dichiarazione di classe/funzione dove deve essere applicato.
Esempio
Ad esempio, l'attributo SysObsoleteAttribute(message,setError) si può usare su classi o metodi che non devono essere più usati. Durante il processo di compilazione, l'utente verrà avvisato con un messaggio dettagliato che appare nelle finestre di output. Il primo parametro è il messaggio e il secondo parametro indica se deve essere impostato un errore (true) o un avviso (false). È possibile fare in modo che il compilatore rifiuti o visualizzi un avviso.
Se l'API non funziona più, impostare isError = true nell'attributo SysObsoleteAttribute in modo che il compilatore riporti qualsiasi uso di quell'API come errore del compilatore
[SysObsoleteAttribute("The Automobile class might have faster performance.", false)]
internal class Bicycle
{
// Members of the Bicycle class go here.
}
Classi di attributi
Gli attributi possono essere creati anche usando le classi. Per creare una classe di attributi, estendere la classe SysAttribute aggiungendo extend SysAttribute alla fine della dichiarazione di classe.
È quindi possibile decorare una classe con l'attributo che era stato creato dalla classe dell'attributo. È possibile specificare i parametri dell'attributo dal costruttore. Nel codice seguente, viene creata la classe di attributo PracticeAttribute, quindi la classe RegularClass usa PracticeAttribute come attributo.
Esempio
L'esempio seguente mostra la dichiarazione e la progettazione di una classe di attributi ordinaria che è possibile creare.
public class PracticeAttribute extends SysAttribute
{
// Fields in the classDeclaration.
StartEnd startEndEnum;
str reason;
}
// Constructor.
public void new(StartEnd _startEndEnum, str _reason)
{
startEndEnum = _startEndEnum;
reason = _reason;
}
[PracticeAttribute(StartEnd::End, "Use the RegularClass class at the end.")]
public class RegularClass
{
[PracticeAttribute(Startend::Start, "Use the rehearse method at the start.")]
public int rehearse()
{
// Logic goes here.
int rehearse;
return rehearse;
}
// More fields and methods belong here.
}
Gli attributi hanno molti usi, inclusi i seguenti:
- Usare l'attributo
WebMethodnei servizi Web per indicare se il metodo deve essere richiamabile tramite il protocollo SOAP (Simple Object Access Protocol) per lo scambio di informazioni. - Usare
DLLImportAttributeper chiamare il codice non gestito. - Descrivere il titolo, la versione, la descrizione o il marchio di un assembly.
- Descrivere come eseguire il mapping tra classi, membri e nodi eXtensible Markup Language (XML) per la serializzazione.
- Descrivere i requisiti di sicurezza per i metodi.
- Specificare le caratteristiche per l'applicazione della sicurezza.
- Ottenere informazioni sul chiamante a un metodo.
Risorse
Per altre informazioni, consultare Classi e metodi.