Condividi tramite


Astrazioni della reflection emit

Aggiornamento: novembre 2007

Le astrazioni della reflection emit sono quasi analoghe al sistema di tipi comuni sottostante a Common Language Runtime.

Un assembly è un insieme configurato di moduli di codice caricabili e altre risorse che implementano, nel loro complesso, un'unità di funzionalità. I nomi degli assembly formano la base della gerarchia di denominazione del sistema di tipi comuni.

In questo argomento gli assembly verranno suddivisi in statici o dinamici. Un assembly statico è un assembly che viene caricato da disco. Un assembly dinamico è un assembly creato utilizzando la reflection emit. Nella tabella che segue sono illustrate, in ordine alfabetico, le astrazioni utilizzate dalla reflection emit.

Astrazione

Descrizione

AssemblyBuilder

Classe che definisce e rappresenta un assembly dinamico. Eredita dalla classe Assembly.

ConstructorBuilder

Classe che definisce e rappresenta un costruttore, il quale descrive un'operazione che crea un'istanza di un tipo. Eredita dalla classe ConstructorInfo.

CustomAttributeBuilder

Classe che aiuta a definire attributi personalizzati.

DynamicMethod

Classe che definisce un metodo globale eseguibile mediante l'utilizzo di un delegato.

EnumBuilder

Classe che aiuta a definire e rappresentare un tipo di enumerazione. Eredita dalla classe Type.

EventBuilder

Classe utilizzata per definire e rappresentare un evento. Eredita dalla classe EventInfo. Gli eventi di un tipo di oggetto specificano transizioni di stato denominate in cui i sottoscrittori possono registrare o annullare la registrazione di un interesse mediante metodi della funzione di accesso.

FieldBuilder

Classe utilizzata per definire e rappresentare un campo. Eredita dalla classe FieldInfo. Un campo è una suddivisione denominata di un valore. È possibile che un tipo presenti membri campo. È inoltre possibile che un modulo o un tipo faccia riferimento a campi definiti nella sezione .sdata di un file eseguibile portabile (PE, Portable Executable).

ILGenerator

Classe utilizzata per definire e rappresentare il linguaggio MSIL (Microsoft Intermediate Language). Le istruzioni in linguaggio MSIL vengono tradotte in codice nativo dal compilatore JIT (Just-In-Time) di runtime.

Label

Classe che è la rappresentazione opaca di un'etichetta utilizzata dalla classe ILGenerator. Le etichette corrispondono a punti specifici del codice MSIL.

LocalBuilder

Classe che rappresenta una variabile locale dichiarata nel corpo di un metodo.

MethodBuilder

Classe utilizzata per definire e rappresentare un metodo. Eredita dalla classe MethodInfo. Un metodo descrive un'operazione eseguibile sui valori di un tipo.

ModuleBuilder

Classe utilizzata per definire e rappresentare un modulo. Eredita dalla classe Module.

Un modulo è un'unità di compilazione o di sviluppo. Un modulo creato mediante l'API della reflection emit viene definito modulo dinamico per la durata dell'esecuzione in cui il modulo è stato creato. Il termine modulo dinamico non è applicabile se il modulo è salvato su disco, quindi caricato da disco. I moduli dinamici che è possibile salvare su disco come file PE sono detti moduli dinamici persistenti. I moduli dinamici che esistono solo in memoria sono detti moduli dinamici temporanei.

ParameterBuilder

Classe utilizzata per definire e rappresentare un parametro. Eredita dalla classe ParameterInfo. I parametri sono posizioni che rappresentano argomenti di metodi o costruttori.

PropertyBuilder

Classe utilizzata per definire e rappresentare una proprietà. Eredita dalla classe PropertyInfo. Le proprietà di un tipo di oggetto specificano valori denominati cui è possibile accedere tramite metodi della funzione di accesso che leggono e scrivono il valore.

TypeBuilder

Classe utilizzata per definire e rappresentare un tipo. Eredita dalla classe Type. I tipi descrivono valori. Il tipo definisce i valori consentiti e le operazioni consentite supportate dai valori del tipo. I membri dei tipi possono essere tipi, metodi, campi, proprietà o eventi.

Vedere anche

Altre risorse

Creazione di assembly e metodi dinamici

Assembly in Common Language Runtime