Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe DynamicILInfo

 

Data di pubblicazione: ottobre 2016

Fornisce supporto per metodi alternativi per generare il Microsoft intermedio language (MSIL) e i metadati per un metodo dinamico, inclusi i metodi per la creazione di token e per l'inserimento di codice, la gestione delle eccezioni e BLOB di firma della variabile locale.

Spazio dei nomi:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Reflection.Emit.DynamicILInfo

[ComVisibleAttribute(true)]
public class DynamicILInfo

NomeDescrizione
System_CAPS_pubpropertyDynamicMethod

Ottiene il metodo dinamico il cui corpo è generato dall'istanza corrente.

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetTokenFor(Byte[])

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta la firma per il metodo dinamico associato.

System_CAPS_pubmethodGetTokenFor(DynamicMethod)

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta un metodo dinamico a essere chiamato dal metodo associato.

System_CAPS_pubmethodGetTokenFor(RuntimeFieldHandle)

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta un campo a cui accedere dal metodo dinamico associato.

System_CAPS_pubmethodGetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta un campo a cui accedere dal metodo dinamico associato; il campo è un tipo generico specificato.

System_CAPS_pubmethodGetTokenFor(RuntimeMethodHandle)

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta un metodo a cui accedere dal metodo dinamico associato.

System_CAPS_pubmethodGetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta un metodo su un tipo generico.

System_CAPS_pubmethodGetTokenFor(RuntimeTypeHandle)

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta un tipo da utilizzare per il metodo dinamico associato.

System_CAPS_pubmethodGetTokenFor(String)

Ottiene un token valido nell'ambito dell'oggetto corrente DynamicILInfo, che rappresenta una stringa letterale da utilizzare per il metodo dinamico associato.

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodSetCode(Byte*, Int32, Int32)

Imposta il corpo di codice del metodo dinamico associato.

System_CAPS_pubmethodSetCode(Byte[], Int32)

Imposta il corpo di codice del metodo dinamico associato.

System_CAPS_pubmethodSetExceptions(Byte*, Int32)

Imposta i metadati di eccezione per il metodo dinamico associato.

System_CAPS_pubmethodSetExceptions(Byte[])

Imposta i metadati di eccezione per il metodo dinamico associato.

System_CAPS_pubmethodSetLocalSignature(Byte*, Int32)

Imposta la firma della variabile locale che descrive il layout delle variabili locali per il metodo dinamico associato.

System_CAPS_pubmethodSetLocalSignature(Byte[])

Imposta la firma della variabile locale che descrive il layout delle variabili locali per il metodo dinamico associato.

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

La DynamicILInfo classe consente agli sviluppatori di scrivere generatori di codice MSIL anziché ILGenerator.

Per creare istanze di altri tipi, chiamare metodi e così via, il codice MSIL generato deve includere i token per le entità. La DynamicILInfo classe fornisce diversi overload del GetTokenFor (metodo), che restituiscono token validi nell'ambito dell'oggetto DynamicILInfo. Ad esempio, se è necessario chiamare un overload di Console.WriteLine metodo, è possibile ottenere un RuntimeMethodHandle per l'overload e passarla al GetTokenFor metodo per ottenere un token da incorporare nel codice MSIL.

Dopo aver creato Byte matrici per la firma della variabile locale, le eccezioni e il corpo del codice, è possibile utilizzare il SetCode, SetExceptions, e SetLocalSignature metodi per inserirli nel DynamicMethod associato di DynamicILInfo oggetto.

La generazione di metadati e codice MSIL personalizzati richiede familiarità con la documentazione di Common Language Infrastructure (CLI), in particolare "Partizione II: metadati di definizione e la semantica" e "Partizione III: CIL Instruction Set". La documentazione è disponibile online; vedere ECMA C# and Common Language Infrastructure Standards su MSDN e Standard ECMA-335 - Common Language Infrastructure (CLI) sul sito Web di Ecma International.

System_CAPS_noteNota

Non utilizzare DynamicILInfo per generare codice che crea un delegato a un altro metodo dinamico chiamando direttamente il costruttore di delegato. Utilizzare invece il CreateDelegate metodo per creare il delegato. Un delegato che viene creato con il costruttore di delegato dispone di un riferimento al metodo dinamico di destinazione. Il metodo dinamico può essere recuperato tramite garbage collection mentre il delegato è ancora in uso.

.NET Framework
Disponibile da 2.0

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: