Introduzione alla Reflection

di: Sosan Abou Assalè     07 Marzo 2007

La Reflection, o introspezione, è un meccanismo che permette di ispezionare un oggetto a runtime, e scoprire quali siano i tipi in esso contenuti, i relativi campi, le proprietà e i metodi.

L'aspetto più interessante è la possibilità di invocare direttamente i metodi di una classe, scoprire gli argomenti passati ad un metodo, accedere alle proprietà della classe, siano essi pubblici o privati.

La Reflection risulta molto utile per la creazione di applicazioni a componenti, per la creazione di ispezionatori di classi, di tool per la costruzione di interfacce grafiche o di debuggers.

Il concetto di Reflection non appartiene solamente a .NET, infatti è stato implementato anche in JAVA, Eiffel, SmallTalk e C++. Ovviamente l'implementazione della Reflection è stata effettuata con modalità differenti a seconda del linguaggio.

Il .NET Framework, tramite il namespace System.Reflection, fornisce una serie di Api per recuperare le informazioni relative all'oggetto durante l'esecuzione, senza dover disporre del nome della classe o della sua struttura.

Con la Reflection è infatti possibile:

  • Determinare la classe di un oggetto
  • Ottenere informazioni riguardo i campi, metodi e le proprietà
  • Scoprire le dichiarazioni dei metodi
  • Instanziare una classe scoprendone il nome solamente a runtime
  • Leggere ed impostare i valori delle proprietà degli oggetti anche se il nome è sconosciuto al proprio programma fino a quando non si esegue
  • Invocare il metodi di un oggetto pur non conoscendo tale metodo fino a quando non si esegue

In generale la Reflection non andrebbe mai utilizzata con leggerezza. Il suo utilizzo è riservato a specifici campi applicativi pertanto non bisogna scomodare la Reflection per lavori in cui sono sufficienti gli strumenti forniti da .NET, questo anche per agevolare le operazioni di debug e per il mantenimento del codice.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto