動的なソース コードの生成とコンパイルDynamic Source Code Generation and Compilation

.NET Framework には、CodeDOM (Code Document Object Model) と呼ばれるメカニズムが備わっています。CodeDOM を使用すると、ソース コードを出力するプログラム開発者は、レンダリング対象となるコードを表す単一のモデルに基づいて、実行時に複数のプログラミング言語でソース コードを生成することができます。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.

ソース コードを表現する CodeDOM 要素は相互にリンクされ、CodeDOM グラフと呼ばれるデータ構造体を形成します。これは、ソース コードの構造をモデル化します。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.

System.CodeDom 名前空間は、特定のプログラミング言語に依存せずに、ソース コードの論理構造を表すことができる型を定義します。The System.CodeDom namespace defines types that can represent the logical structure of source code, independent of a specific programming language. System.CodeDom.Compiler 名前空間は、CodeDOM グラフからソース コードを生成し、サポートされている言語でソース コードのコンパイルを管理する型を定義します。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. たとえば、その言語が CodeDOM でサポートされている場合は、デザイン時に CodeDOM を言語抽象化インターフェイスとして使用し、適切なプログラミング言語でソース コードを生成できます。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 には、CSharpCodeProvider 用、JScriptCodeProvider 用、および VBCodeProvider 用のコード ジェネレーターとコード コンパイラが用意されています。The .NET Framework includes code generators and code compilers for CSharpCodeProvider, JScriptCodeProvider, and VBCodeProvider.

このセクションの内容In This Section

CodeDOM の使用方法Using the CodeDOM
CodeDOM の一般的な使用方法を説明し、CodeDOM を使って簡単なオブジェクト グラフを構築する例を示します。Describes common uses, and demonstrates building a simple object graph using the CodeDOM.

CodeDOM グラフからのソース コードの生成およびプログラムのコンパイルGenerating Source Code and Compiling a Program from a CodeDOM Graph
ソース コードを生成する方法と、生成されたコードを 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.

方法: CodeDOM を使用して XML ドキュメント ファイルを作成するHow to: Create an XML Documentation File Using CodeDOM
CodeDOM を使用して XML ドキュメントのコメント付きのコードを生成する方法、および生成されたコードをコンパイルして 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.

方法 : CodeDOM を使用してクラスを作成するHow to: Create a Class Using CodeDOM
CodeDOM を使用してフィールド、プロパティ、メソッド、コンストラクター、およびエントリ ポイントを持つクラスを生成する方法を説明します。Describes how to use CodeDOM to generate a class containing fields, properties, a method, a constructor, and an entry point.

参照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 クイック リファレンスCodeDOM Quick Reference
ソース コードの要素を表す CodeDOM 要素を簡単に検索するための方法が用意されています。Provides a quick way for developers to find the CodeDOM elements that represent source code elements.