Emitir métodos y ensamblados dinámicos
En esta sección se describe un conjunto de tipos administrados del espacio de nombres System.Reflection.Emit que permite a un compilador o una herramienta emitir metadatos y Lenguaje intermedio de Microsoft (MSIL) en tiempo de ejecución, y opcionalmente generar un archivo ejecutable portable (PE) en el disco. Los principales usuarios de este espacio de nombres son los motores de script y los compiladores. En esta sección, la funcionalidad que proporciona el espacio de nombres System.Reflection.Emit se denomina emisión de la reflexión.
La emisión de la reflexión proporciona las siguientes capacidades:
Definir en tiempo de ejecución métodos globales ligeros, utilizando la clase DynamicMethod y ejecutarlos utilizando delegados.
Definir ensamblados en tiempo de ejecución y después ejecutarlos o guardarlos en el disco.
Definir ensamblados en tiempo de ejecución, ejecutarlos y, a continuación, descargarlos y permitir que la recolección de elementos no utilizados recupere sus recursos.
Definir módulos en nuevos ensamblados en tiempo de ejecución y después ejecutarlos o guardarlos en el disco.
Definir tipos en módulos en tiempo de ejecución, crear instancias de estos tipos e invocar sus métodos.
Definir, para los módulos definidos, información simbólica que puede ser utilizada por herramientas como depuradores o generadores de perfiles de código.
Además de los tipos administrados del espacio de nombres System.Reflection.Emit, hay interfaces de metadatos no administradas que se describen en la documentación de referencia Interfaces de metadatos. La emisión de la reflexión administrada proporciona una comprobación más estricta de los errores semánticos y un mayor nivel de abstracción de los metadatos que las interfaces de metadatos no administradas.
Otro recurso muy útil para trabajar con metadatos y MSIL es la documentación de Common Language Infrastructure (CLI), especialmente las secciones "Partition II: Metadata Definition and Semantics" y "Partition III: CIL Instruction Set". La documentación está disponible en línea en MSDN y en el sitio web de Ecma.
En esta sección
Abstracciones de emisión de la reflexión
Enumera y describe las clases de emisión de la reflexión que se pueden utilizar para definir ensamblados y tipos, métodos y parámetros de métodos, eventos, constructores, propiedades, etc.Ensamblados recopilables para la generación dinámica de tipos
Describe la creación y el uso de ensamblados dinámicos que se pueden descargar y que la recolección de elementos no utilizados puede recuperar cuando ninguno de los tipos que contienen es alcanzable ejecutando código.Escenarios del método dinámico de la emisión de la reflexión
Describe la definición y el uso de los métodos dinámicos ligeros.Escenarios de ensamblado dinámico de emisión de la reflexión
Describe el escenario principal de emisión de la reflexión, en el que se emite un módulo dinámico definido en un ensamblado dinámico.Escenarios de aplicación de la emisión de la reflexión
Describe los escenarios de aplicación admitidos por la emisión de la reflexión, ejecutando un script en un explorador web, ejecutando un script en una página ASP.NET y compilando una expresión regular.Problemas de seguridad en la emisión de la reflexión
Describe los problemas de seguridad relacionados con la creación de ensamblados dinámicos mediante Reflection Emit.Utilizar la emisión de la reflexión
Describe las tareas fundamentales que puede realizar utilizando la emisión de la reflexión, con temas "Cómo..." sobre la generación de métodos dinámicos ligeros y la emisión de tipos y métodos genéricos.Información adicional sobre la emisión de la reflexión
Describe otra documentación relacionada con Reflection Emit.
Referencia
OpCodes
Cataloga los códigos de instrucción MSIL que puede utilizar para compilar cuerpos de método.System.Reflection.Emit
Contiene clases administradas utilizadas para emitir métodos, ensamblados y tipos dinámicos.Type
Describe la clase Type, que representa los tipos en reflexión administrada y emisión de la reflexión y que es fundamental para usar estas tecnologías.System.Reflection
Contiene clases administradas utilizadas para explorar metadatos y código administrado.
Secciones relacionadas
Reflexión
Explica cómo explorar metadatos y código administrado.Ensamblados en Common Language Runtime
Ofrece una descripción general de los ensamblados de .NET Framework.