Generación y compilación dinámicas de código fuenteDynamic Source Code Generation and Compilation

.NET Framework incluye un mecanismo denominado Code Document Object Model (CodeDOM) que permite que los desarrolladores de programas que emiten código de origen generen código fuente en varios lenguajes de programación en tiempo de ejecución, en función de un único modelo que representa el código que se va a representar.The .NET Framework includes a mechanism called the Code Document Object Model (CodeDOM) that enables developers of programs that emit source code to generate source code in multiple programming languages at run time, based on a single model that represents the code to render.

Para representar el código fuente, los elementos CodeDOM se enlazan entre sí para formar una estructura de datos denominada gráfico CodeDOM, que modela la estructura de parte del código fuente.To represent source code, CodeDOM elements are linked to each other to form a data structure known as a CodeDOM graph, which models the structure of some source code.

El espacio de nombres System.CodeDom define los tipos que pueden representar la estructura lógica del código fuente, independientemente de un lenguaje de programación específico.The System.CodeDom namespace defines types that can represent the logical structure of source code, independent of a specific programming language. El espacio de nombres System.CodeDom.Compiler define los tipos para generar código fuente a partir de gráficos CodeDOM y para administrar la compilación del código fuente en los lenguajes admitidos.The System.CodeDom.Compiler namespace defines types for generating source code from CodeDOM graphs and managing the compilation of source code in supported languages. Los desarrolladores o proveedores de compiladores pueden extender el conjunto de lenguajes admitidos.Compiler vendors or developers can extend the set of supported languages.

El modelado de código fuente independiente del lenguaje puede resultar valioso cuando un programa necesita generar código fuente para un modelo de programa en varios lenguajes o para un lenguaje de destino indeterminado.Language-independent source code modeling can be valuable when a program needs to generate source code for a program model in multiple languages or for an uncertain target language. Por ejemplo, algunos diseñadores usan CodeDOM como una interfaz de abstracción del lenguaje para generar código fuente en el lenguaje de programación correcto, si CodeDOM es compatible con el idioma.For example, some designers use the CodeDOM as a language abstraction interface to produce source code in the correct programming language, if CodeDOM support for the language is available.

.NET Framework incluye los generadores de código y compiladores de código para CSharpCodeProvider, JScriptCodeProvider y VBCodeProvider.The .NET Framework includes code generators and code compilers for CSharpCodeProvider, JScriptCodeProvider, and VBCodeProvider.

En esta secciónIn This Section

Usar CodeDOMUsing the CodeDOM
Describe los usos comunes y muestra cómo se compila un gráfico de objetos simple mediante CodeDOM.Describes common uses, and demonstrates building a simple object graph using the CodeDOM.

Generar código fuente y compilar un programa a partir de un gráfico CodeDOMGenerating Source Code and Compiling a Program from a CodeDOM Graph
Describe cómo generar código fuente y compilar el código generado con un compilador externo mediante el uso de las clases definidas en el espacio de nombres System.CodeDom.Compiler.Describes how to generate source code and compile the generated code with an external compiler using classes defined in the System.CodeDom.Compiler namespace.

Cómo: Crear un archivo de documentación XML mediante CodeDOMHow to: Create an XML Documentation File Using CodeDOM
Describe cómo usar CodeDOM para generar código con comentarios de documentación XML y compilar el código generado para que cree la salida de documentación XML.Describes how to use CodeDOM to generate code with XML documentation comments, and compile the generated code so that it creates the XML documentation output.

Cómo: Crear un clase mediante CodeDOMHow to: Create a Class Using CodeDOM
Describe cómo usar CodeDOM para generar una clase que contenga campos, propiedades, un método, un constructor y un punto de entrada.Describes how to use CodeDOM to generate a class containing fields, properties, a method, a constructor, and an entry point.

ReferenciaReference

System.CodeDom
Define los elementos que representan elementos de código en lenguajes de programación que tienen como destino Common Language Runtime.Defines elements that represent code elements in programming languages that target the common language runtime.

System.CodeDom.Compiler
Define las interfaces para generar y compilar código en tiempo de ejecución.Defines interfaces for generating and compiling code at run time.

Referencia rápida de CodeDOMCodeDOM Quick Reference
Proporciona una forma rápida para que los desarrolladores busquen los elementos CodeDOM que representan elementos de código fuente.Provides a quick way for developers to find the CodeDOM elements that represent source code elements.