Condividi tramite


Estensione di metadati mediante 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.

Argomenti correlati

Titolo

Descrizione

Applicazione di attributi

Viene descritto come applicare un attributo a un elemento del codice.

Scrittura di attributi personalizzati

Viene descritto come progettare classi di attributi personalizzati.

Recupero di informazioni memorizzate negli attributi

Viene descritto come recuperare attributi personalizzati per il codice caricato nel contesto di esecuzione.

Metadati e componenti auto-descrittivi

Viene fornita una panoramica sui metadati e ne vengono descritte le modalità di implementazione nei file eseguibili portabili (PE, Portable Executable) di .NET Framework.

Procedura: caricare assembly nel contesto Reflection-Only

Viene illustrato come recuperare le informazioni sugli attributi personalizzati nel contesto Reflection-only.

Riferimenti

System.Attribute