Creazione di assembly dinamici

In questa sezione verrà descritto un insieme di tipi gestiti dello spazio dei nomi System.Reflection.Emit che consente la creazione di metadati e MSIL (Microsoft Intermediate Language) da parte di compilatori o strumenti in fase di esecuzione ed eventualmente la generazione su disco di un file eseguibile portabile (PE, Portable Executable). Questo spazio dei nomi viene utilizzato principalmente da moduli di gestione di script e compilatori. In questa sezione si farà riferimento alle funzionalità fornite dallo spazio dei nomi System.Reflection.Emit con l'espressione reflection emit (creazione tramite la reflection).

La reflection emit fornisce i seguenti servizi:

  • Definizione di assembly in fase di esecuzione, quindi esecuzione e/o salvataggio di tali assembly su disco.
  • Definizione di moduli in nuovi assembly in fase di esecuzione, quindi esecuzione e/o salvataggio di tali assembly su disco.
  • Definizione di tipi in fase di esecuzione, creazione di istanze di tali tipi e richiamo dei metodi di ciascun tipo.
  • Definizione di informazioni relative ai simboli per i moduli definiti, le quali saranno utilizzabili da strumenti quali debugger e profiler di codice.

Le interfacce di metadata emit (creazione tramite metadati) descritte nella specifica Metadata API (disponibile nella directory %systemroot%\Microsoft.NET\Framework SDK\Tool Developers Guide\Docs) e nella specifica Assembly Manifest (disponibile nella directory %systemroot%\Microsoft.NET\Framework SDK\Tool Developers Guide\Docs) forniscono un insieme alternativo di API non gestite per la definizione di metadati. La reflection emit garantisce un più completo controllo degli errori semantici e un più alto livello di astrazione dei metadati rispetto alle interfacce di metadata emit.

In questa sezione

Sezioni correlate