Cenni preliminari sugli attributi

Una conoscenza del linguaggio C++ consente di acquisire una certa familiarità con le dichiarazioni contenenti parole chiave, ad esempio public e private, che offrono informazioni aggiuntive sui membri delle classi. Tali parole chiave permettono di definire ulteriormente il funzionamento dei membri delle classi descrivendone l'accessibilità da altre classi. Dal momento che i compilatori vengono esplicitamente progettati per riconoscere parole chiave predefinite, non si ha in genere l'opportunità di crearne di proprie. Common Language Runtime consente tuttavia di aggiungere dichiarazioni descrittive analoghe alle parole chiave, dette attributi, con le quali è possibile apporre annotazioni a elementi di programmazione quali tipi, campi, metodi e proprietà.

Quando si compila il codice per la fase di esecuzione, esso viene convertito nel linguaggio MSIL (Microsoft Intermediate Language) e inserito in un file eseguibile portabile (PE, Portable Executable) insieme ai metadati generati dal compilatore. Gli attributi consentono di inserire nei metadati ulteriori informazioni descrittive che è possibile estrarre avvalendosi dei servizi di reflection in fase di esecuzione. Il compilatore crea attributi quando si dichiarano istanze di classi speciali derivanti da System.Attribute.

Gli attributi vengono utilizzati da .NET Framework per varie ragioni e per rispondere a diverse necessità. Gli attributi indicano come serializzare i dati, specificano caratteristiche mirate al raggiungimento di una maggiore sicurezza e limitano le ottimizzazioni effettuate dal compilatore just-in-time (JIT) per facilitare il debug del codice. Consentono inoltre di memorizzare il nome di un file o dell'autore del codice o di verificare la visibilità di controlli e membri durante lo sviluppo dei form.

È possibile utilizzare gli attributi per descrivere il codice nel modo desiderato, qualsiasi esso sia, e modificare in modo nuovo e creativo il funzionamento in fase di esecuzione. Gli attributi consentono di aggiungere elementi descrittivi personalizzati a C#, a Visual C++, a Microsoft Visual Basic 2005 o a qualsiasi altro linguaggio destinato alla fase di esecuzione, senza dover riscrivere il compilatore.

Vedere anche

Riferimenti

System.Attribute

Altre risorse

Estensione di metadati mediante attributi