MSDN Library
Collapse the table of content
Expand the table of content

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.

Abstracciones de Reflection Emit

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.

Escenarios del método dinámico Reflection Emit

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

Describe las tareas fundamentales que pueden realizar utilizando la emisión de la reflexión, con temas "Cómo..." para 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.

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.

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.

Adiciones de comunidad

Mostrar:
© 2016 Microsoft