Dynamic Source Code Generation and Compilation

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.

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.

The System.CodeDom namespace defines types that can represent the logical structure of source code, independent of a specific programming language. The System.CodeDom.Compiler namespace defines types for generating source code from CodeDOM graphs and managing the compilation of source code in supported languages. Compiler vendors or developers can extend the set of supported languages.

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

The .NET Framework includes code generators and code compilers for C#, JScript, and Visual Basic.

In This Section

Reference

  • System.CodeDom
    Defines elements that represent code elements in programming languages that target the common language runtime.

  • System.CodeDom.Compiler
    Defines interfaces for generating and compiling code at run time.

  • CodeDOM Quick Reference
    Provides a quick way for developers to find the CodeDOM elements that represent source code elements.