DynamicILInfo Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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
- Herencia
-
DynamicILInfo
- Atributos
Comentarios
La DynamicILInfo clase permite a los desarrolladores escribir sus propios generadores MSIL en lugar de usar ILGenerator.
Para crear instancias de otros tipos, llame a métodos, etc., el MSIL que genere debe incluir tokens para esas entidades. La DynamicILInfo clase proporciona varias sobrecargas del GetTokenFor método , que devuelven tokens válidos en el ámbito del objeto actual DynamicILInfo. Por ejemplo, si necesita llamar a una sobrecarga del Console.WriteLine método , puede obtener un RuntimeMethodHandle para esa sobrecarga y pasarlo al GetTokenFor método para obtener un token para insertar en el MSIL.
Una vez que haya creado Byte matrices para la firma de variable local, las excepciones y el cuerpo del código, puede usar los SetCodemétodos , SetExceptionsy SetLocalSignature para insertarlos en el DynamicMethod asociado al DynamicILInfo objeto .
La generación de sus propios metadatos y MSIL requiere estar familiarizado con la documentación de Common Language Infrastructure (CLI), especialmente "Partition II: Metadata Definition and Semantics" (Partición II: Definición de metadatos y semántica) y "Partition III: CIL Instruction Set". Para obtener más información, consulte ECMA 335 Common Language Infrastructure (CLI).
Nota
No use DynamicILInfo para generar código que cree un delegado en otro método dinámico llamando directamente al constructor delegado. En su lugar, use el CreateDelegate método para crear el delegado. Un delegado que se crea con el constructor delegado no tiene una referencia al método dinámico de destino. La recolección de elementos no utilizados podría reclamar el método dinámico mientras el delegado todavía está en uso.
Propiedades
DynamicMethod |
Obtiene el método dinámico cuyo cuerpo viene generado por la instancia actual. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
SetCode(Byte*, Int32, Int32) |
Establece el cuerpo de código del método dinámico asociado. |
SetCode(Byte[], Int32) |
Establece el cuerpo de código del método dinámico asociado. |
SetExceptions(Byte*, Int32) |
Establece los metadatos de excepción del método dinámico asociado. |
SetExceptions(Byte[]) |
Establece los metadatos de excepción del método dinámico asociado. |
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. |
SetLocalSignature(Byte[]) |
Establece la firma de variable local que describe el diseño de las variables locales para el método dinámico asociado. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |