動的メソッドおよびアセンブリの出力

更新 : 2007 年 11 月

ここでは、System.Reflection.Emit 名前空間のマネージ型について説明します。これらのマネージ型により、コンパイラまたはツールはメタデータや Microsoft Intermediate Language (MSIL) を実行時に出力できます。また、ポータブル実行可能 (PE) ファイルをディスク上に生成することもできます。この名前空間を使用する主な機能は、スクリプト エンジンとコンパイラです。ここでは、リフレクション出力と呼ばれる System.Reflection.Emit 名前空間の機能について説明します。

リフレクション出力は、以下の機能を提供します。

  • 実行時に DynamicMethod クラスを使用して軽量のグローバル メソッドを定義し、デリゲートを使用してそのメソッドを実行します。

  • 実行時にアセンブリを定義し、次に、アセンブリを実行するか、ディスクに保存します。

  • 実行時に新しいアセンブリのモジュールを定義し、次に、モジュールを実行するか、ディスクに保存します。

  • 実行時にモジュール内の型を定義し、その型のインスタンスを作成してメソッドを呼び出します。

  • デバッガまたはコード プロファイラなどのツールで使用できる、定義されたモジュールのシンボリック情報を定義します。

System.Reflection.Emit 名前空間のマネージ型に加えて、アンマネージ メタデータ インターフェイスもあります。これについては、メタデータ インターフェイス に関するリファレンス ドキュメントを参照してください。マネージ リフレクション出力は、アンマネージ メタデータ インターフェイスよりも強力なセマンティック エラー チェック機能、より高水準なメタデータの抽象化クラスを提供します。

メタデータと MSIL を使用する際に役立つリソースとしては、他に、共通言語基盤 (CLI: Common Language Infrastructure) のドキュメント、特に「Partition II: Metadata Definition and Semantics」と「Partition III: CIL Instruction Set」などもあります。ドキュメントは、MSDN および Ecma Web サイトからオンラインで入手できます。

このセクションの内容

参照

  • OpCodes
    メソッド本体の構築に使用できる MSIL 命令コードのカタログを作成します。

  • System.Reflection.Emit
    動的メソッド、アセンブリ、および型の出力に使用するマネージ クラスが含まれます。

  • Type
    Type クラスについて説明します。このクラスは、マネージ リフレクションとリフレクション出力の型を表し、これらのテクノロジを使用するうえで重要なクラスです。

  • System.Reflection
    メタデータとマネージ コードの探索に使用するマネージ クラスが含まれます。

関連するセクション