DynamicILInfo Clase

Definición

Proporciona compatibilidad con relación a las diferentes formas existentes a la hora de generar el lenguaje intermedio de Microsoft (MSIL) y metadatos para un método dinámico, incluidos métodos para la creación de símbolos (token) y para la inserción de código, control de excepciones y objetos binarios (BLOB) para la firma de variables locales.Provides support for alternative ways to generate the Microsoft intermediate language (MSIL) and metadata for a dynamic method, including methods for creating tokens and for inserting the code, exception handling, and local variable signature blobs.

public ref class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
type DynamicILInfo = class
Public Class DynamicILInfo
Herencia
DynamicILInfo
Atributos

Comentarios

La DynamicILInfo clase permite a los desarrolladores escribir sus propios generadores de MSIL en lugar ILGeneratorde usar.The DynamicILInfo class allows developers to write their own MSIL generators instead of using ILGenerator.

Para crear instancias de otros tipos, llamar a métodos, etc., el MSIL generado debe incluir tokens para esas entidades.To create instances of other types, call methods, and so on, the MSIL you generate must include tokens for those entities. La DynamicILInfo clase proporciona varias sobrecargas GetTokenFor del método, que devuelven tokens válidos en el ámbito del DynamicILInfoactual.The DynamicILInfo class provides several overloads of the GetTokenFor method, which return tokens valid in the scope of the current DynamicILInfo. Por ejemplo, si necesita llamar a una sobrecarga del Console.WriteLine método, puede obtener un RuntimeMethodHandle para esa sobrecarga GetTokenFor y pasarlo al método para obtener un token que se va a insertar en el MSIL.For example, if you need to call an overload of the Console.WriteLine method, you can obtain a RuntimeMethodHandle for that overload and pass it to the GetTokenFor method to obtain a token to embed in your MSIL.

Una vez que haya Byte creado matrices para la firma de la variable local, las excepciones y el cuerpo del código, SetCodepuede SetExceptionsusar los SetLocalSignature métodos, y para insertarlas DynamicMethod en el asociado DynamicILInfo a su objeto.Once you have created Byte arrays for your local variable signature, exceptions, and code body, you can use the SetCode, SetExceptions, and SetLocalSignature methods to insert them into the DynamicMethod associated with your DynamicILInfo object.

Para generar sus propios metadatos y MSIL es necesario estar familiarizado con la documentación de Common Language Infrastructure (CLI), especialmente "Partition II: Metadata Definition and Semantics (Partición II: definición y semántica de los metadatos)" y "Partition III: CIL Instruction Set (Partición III: conjunto de instrucciones CIL)".Generating your own metadata and MSIL requires familiarity with the Common Language Infrastructure (CLI) documentation, especially "Partition II: Metadata Definition and Semantics" and "Partition III: CIL Instruction Set". La documentación está disponible en línea; vea ECMA C# and Common Language Infrastructure Standards (Estándares de ECMA C# y Common Language Infrastructure) en MSDN y Standard ECMA-335 - Common Language Infrastructure (CLI) (Estándar ECMA-335: Common Language Infrastructure [CLI]) en el sitio web de Ecma International.The documentation is available online; see ECMA C# and Common Language Infrastructure Standards on MSDN and Standard ECMA-335 - Common Language Infrastructure (CLI) on the Ecma International Web site.

Nota

No use DynamicILInfo para generar código que cree un delegado en otro método dinámico llamando directamente al constructor delegado.Do not use DynamicILInfo to generate code that creates a delegate to another dynamic method by calling the delegate constructor directly. En su lugar, use CreateDelegate el método para crear el delegado.Instead, use the CreateDelegate method to create the delegate. Un delegado que se crea con el constructor delegado no tiene una referencia al método dinámico de destino.A delegate that is created with the delegate constructor does not have a reference to the target dynamic method. El método dinámico podría ser reclamado por la recolección de elementos no utilizados mientras el delegado todavía está en uso.The dynamic method might be reclaimed by garbage collection while the delegate is still in use.

Propiedades

DynamicMethod

Obtiene el método dinámico cuyo cuerpo viene generado por la instancia actual.Gets the dynamic method whose body is generated by the current instance.

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetTokenFor(Byte[])

Obtiene un símbolo (token), válido en el ámbito del DynamicILInfo actual, que representa la firma para el método dinámico asociado.Gets a token, valid in the scope of the current DynamicILInfo, representing the signature for the associated dynamic method.

GetTokenFor(DynamicMethod)

Obtiene un símbolo (token), válido en el ámbito del DynamicILInfo actual, que representa un método dinámico al que llamar desde el método asociado.Gets a token, valid in the scope of the current DynamicILInfo, representing a dynamic method to be called from the associated method.

GetTokenFor(RuntimeFieldHandle)

Obtiene un símbolo (token), válido en el ámbito del DynamicILInfo actual, que representa un campo al que se puede obtener acceso desde el método dinámico asociado.Gets a token, valid in the scope of the current DynamicILInfo, representing a field to be accessed from the associated dynamic method.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Obtiene un token, válido en el ámbito del objeto DynamicILInfo actual, que representa un campo al que se puede obtener acceso desde el método dinámico asociado; el campo es del tipo genérico especificado.Gets a token, valid in the scope of the current DynamicILInfo, representing a field to be accessed from the associated dynamic method; the field is on the specified generic type.

GetTokenFor(RuntimeMethodHandle)

Obtiene un símbolo (token), válido en el ámbito del DynamicILInfo actual, que representa un método al que se puede obtener acceso desde el método dinámico asociado.Gets a token, valid in the scope of the current DynamicILInfo, representing a method to be accessed from the associated dynamic method.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Obtiene un símbolo (token), válido en el ámbito del DynamicILInfo actual, que representa un método en un tipo genérico.Gets a token, valid in the scope of the current DynamicILInfo, representing a method on a generic type.

GetTokenFor(RuntimeTypeHandle)

Obtiene un símbolo (token), válido en el ámbito del DynamicILInfo actual, que representa un tipo que se puede utilizar en el método dinámico asociado.Gets a token, valid in the scope of the current DynamicILInfo, representing a type to be used in the associated dynamic method.

GetTokenFor(String)

Obtiene un símbolo (token), válido en el ámbito del DynamicILInfo actual, que representa un literal de cadena que se puede utilizar en el método dinámico asociado.Gets a token, valid in the scope of the current DynamicILInfo, representing a string literal to be used in the associated dynamic method.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
SetCode(Byte*, Int32, Int32)

Establece el cuerpo de código del método dinámico asociado.Sets the code body of the associated dynamic method.

SetCode(Byte[], Int32)

Establece el cuerpo de código del método dinámico asociado.Sets the code body of the associated dynamic method.

SetExceptions(Byte*, Int32)

Establece los metadatos de excepción del método dinámico asociado.Sets the exception metadata for the associated dynamic method.

SetExceptions(Byte[])

Establece los metadatos de excepción del método dinámico asociado.Sets the exception metadata for the associated dynamic method.

SetLocalSignature(Byte*, Int32)

Establece la firma de variable local que describe el diseño de las variables locales para el método dinámico asociado.Sets the local variable signature that describes the layout of local variables for the associated dynamic method.

SetLocalSignature(Byte[])

Establece la firma de variable local que describe el diseño de las variables locales para el método dinámico asociado.Sets the local variable signature that describes the layout of local variables for the associated dynamic method.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a