Emitir métodos y ensamblados dinámicos

Actualización: noviembre 2007

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 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

Referencia

  • OpCodes
    Cataloga los códigos de instrucción MSIL que puede utilizar para generar 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