Reflection
System.Type e le classi dello spazio dei nomi System.Reflection consentono di ottenere informazioni sugli assembly caricati e i tipi in essi definiti, quali classi, interfacce e tipi di valore. È anche possibile utilizzare la reflection per creare istanze di tipi in fase di esecuzione, richiamarle e accedervi.
In questa sezione
- Cenni preliminari su reflection
Vengono illustrati la reflection e i suoi principali utilizzi.
- Procedura: caricare assembly nel contesto Reflection-Only
Viene descritto il contesto di caricamento Reflection-Only. Viene illustrato come caricare un assembly, verificare il contesto ed esaminare gli attributi applicati a un assembly nel contesto Reflection-Only.
- Tipi di runtime nella reflection
Vengono descritti i tipi interni, ad esempio RuntimeType, che ereditano le classi astratte dello spazio dei nomi System.Reflection e ne forniscono gran parte dell'implementazione.
- Visualizzazione delle informazioni sul tipo
Viene illustrata la classe System.Type e vengono forniti esempi di codice in cui viene illustrato come utilizzare System.Type con diverse classi di reflection per ottenere informazioni su costruttori, metodi, campi, proprietà ed eventi.
- Reflection e tipi generici
Viene illustrata la modalità con cui la reflection gestisce i parametri e gli argomenti di tipo di metodi e tipi generici.
- Modelli di progettazione utilizzati dalle classi di reflection
Viene fornita una tabella in cui si illustra il modello di denominazione dei metodi e l'utilizzo delle classi di reflection più comuni, quali ad esempio Module, Type e MemberInfo.
- Considerazioni sulla protezione in relazione alla reflection
Vengono illustrate le regole che determinano in che misura è possibile utilizzare la reflection per recuperare informazioni sui tipi e accedere ai tipi.
- Caricamento e utilizzo dinamico dei tipi
Viene illustrata l'interfaccia di associazione personalizzata della reflection che supporta l'associazione tardiva.
- Accesso ai membri predefiniti
Viene illustrato come utilizzare la reflection per accedere ai membri predefiniti di una classe.
- Accesso ai valori predefiniti degli argomenti
Viene illustrato come utilizzare la reflection per accedere agli argomenti che dispongono di valori predefiniti e come richiamare i metodi che presentano argomenti con valori predefiniti.
- Accesso ad attributi personalizzati
Viene illustrato l'utilizzo della reflection per ottenere informazioni sull'esistenza degli attributi e sui relativi valori.
- Specifica di nomi di tipo completi
Vengono illustrati il formato dei nomi di tipo completi, secondo i canoni BNF (Backus-Naur Form), e la sintassi richiesta per specificare nomi di assembly, puntatori, riferimenti, matrici e caratteri speciali.
- API Reflection non gestita
Viene indicato dove si trovano le informazioni sull'utilizzo della reflection non gestita per l'esame dei metadati.
- Procedura: associare un delegato tramite reflection
Viene illustrato come creare un delegato per un metodo e associarlo a un evento. Viene illustrato come creare un metodo di gestione degli eventi in fase di esecuzione utilizzando DynamicMethod.
Riferimenti
- Type
Classe che rappresenta i tipi del sistema di tipi di Common Language Runtime e fornisce funzionalità essenziali per la reflection.
- System.Reflection
Spazio dei nomi contenente altre astrazioni per le entità del codice, ad esempio la classe MethodInfo che rappresenta i metodi.
- System.Reflection.Emit
Spazio dei nomi contenente le classi per la generazione di assembly e metodi dinamici.
Sezioni correlate
- Creazione di assembly e metodi dinamici
Viene illustrato come generare assembly e metodi generici.