DynamicILInfo Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce supporto per utilizzare metodi alternativi per generare codice MSIL (Microsoft Intermediate Language) e metadati per un metodo dinamico, inclusi metodi per la creazione di token e per l'inserimento di codice, gestione delle eccezioni e blob di firma per le variabili locali.
public ref class DynamicILInfo sealed
public ref class DynamicILInfo
public sealed class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
type DynamicILInfo = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
Public NotInheritable Class DynamicILInfo
Public Class DynamicILInfo
- Ereditarietà
-
DynamicILInfo
- Attributi
Commenti
La DynamicILInfo classe consente agli sviluppatori di scrivere i propri generatori MSIL anziché usare ILGenerator.
Per creare istanze di altri tipi, metodi di chiamata e così via, l'MSIL generato deve includere token per tali entità. La DynamicILInfo classe fornisce diversi overload del GetTokenFor metodo, che restituiscono token validi nell'ambito dell'oggetto corrente DynamicILInfo. Ad esempio, se è necessario chiamare un overload del Console.WriteLine metodo, è possibile ottenere un RuntimeMethodHandle oggetto per tale overload e passarlo al GetTokenFor metodo per ottenere un token da incorporare in MSIL.
Dopo aver creato Byte matrici per la firma della variabile locale, le eccezioni e il corpo del codice, è possibile usare i SetCodemetodi , SetExceptionse SetLocalSignature per inserirli nell'oggetto DynamicMethod associato DynamicILInfo .
La generazione di metadati personalizzati e MSIL richiede familiarità con la documentazione di Common Language Infrastructure (CLI), in particolare "Partition II: Metadata Definition and Semantics" e "Partition III: CIL Instruction Set". Per altre informazioni, vedere ECMA 335 Common Language Infrastructure (CLI).
Nota
Non usare DynamicILInfo per generare codice che crea un delegato a un altro metodo dinamico chiamando direttamente il costruttore delegato. Usare invece il metodo per creare il CreateDelegate delegato. Un delegato creato con il costruttore delegato non ha un riferimento al metodo dinamico di destinazione. Il metodo dinamico potrebbe essere recuperato da Garbage Collection mentre il delegato è ancora in uso.
Proprietà
DynamicMethod |
Ottiene il metodo dinamico il cui corpo viene generato dall'istanza corrente. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetTokenFor(Byte[]) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta la firma per il metodo dinamico associato. |
GetTokenFor(DynamicMethod) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta un metodo dinamico da chiamare dal metodo associato. |
GetTokenFor(RuntimeFieldHandle) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta un campo a cui accedere dal metodo dinamico associato. |
GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta un campo a cui accedere dal metodo dinamico associato; il campo si trova sul tipo generico specificato. |
GetTokenFor(RuntimeMethodHandle) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta un metodo dinamico a cui accedere dal metodo dinamico associato. |
GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta un metodo in un tipo generico. |
GetTokenFor(RuntimeTypeHandle) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta un tipo da utilizzare nel metodo dinamico associato. |
GetTokenFor(String) |
Ottiene un token, valido nell'ambito della classe DynamicILInfo corrente, che rappresenta una stringa letterale da utilizzare nel metodo dinamico associato. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
SetCode(Byte*, Int32, Int32) |
Imposta il corpo del codice del metodo dinamico associato. |
SetCode(Byte[], Int32) |
Imposta il corpo del codice del metodo dinamico associato. |
SetExceptions(Byte*, Int32) |
Imposta i metadati delle eccezioni del metodo dinamico associato. |
SetExceptions(Byte[]) |
Imposta i metadati delle eccezioni del metodo dinamico associato. |
SetLocalSignature(Byte*, Int32) |
Imposta la firma delle variabili locali che descrive il layout delle variabili locali per il metodo dinamico associato. |
SetLocalSignature(Byte[]) |
Imposta la firma delle variabili locali che descrive il layout delle variabili locali per il metodo dinamico associato. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |