次の方法で共有


メタデータの概要

更新 : 2007 年 11 月

メタデータは、ランタイム型 (クラス、インターフェイス、および値型)、フィールド、およびメソッドを記述する場合に使用されます。また、Microsoft Intermediate Language (MSIL) の JIT コンパイル、クラスの読み込み、コードの実行、および古い COM またはネイティブ環境との相互運用を行うために共通言語ランタイム (CLR: Common Language Runtime) が使用する内部実装およびレイアウト情報を記述する場合にも使用されます。メタデータはすべての CLR コンポーネントに含まれ、ランタイム、ツール、およびサービスで使用できます。

メタデータの操作はすべて、メタデータ API を介して行われます。メタデータ API は、基になるデータ構造からクライアント (ツールおよびサービス) を分離し、ランタイム バイナリ表現、古い COM タイプ ライブラリ、および他の形式とメモリの間で透過的な転送を実行できるようにする、プラグ可能な永続形式アーキテクチャを有効にします。

メタデータ API には、メタデータを出力 (つまり生成) およびインポートするインターフェイスが含まれます。クライアントは、次の方法でメタデータを出力またはインポートできます。

  • コンパイラおよびツールは、"emit" API を呼び出すことでメタデータを出力します。メタデータは、コンパイルおよびリンク プロセス中に出力されます。RAD ツールは、コンポーネントまたはアプリケーションのビルドの一部としてメタデータを出力します。API メンバは、インメモリ データ構造の書き込みおよび読み込みを行います。これらのインメモリ構造は保存時に圧縮され、ターゲット コンパイル単位 (.obj ファイル)、実行可能 (.exe) ファイル、またはスタンドアロン メタデータ バイナリ ファイルにバイナリ形式で永続化されます。複数のコンパイル単位をリンクして EXE または DLL が形成される場合、"emit" API メンバは、各コンパイル単位から単一の統合されたメタデータ バイナリ ファイルにメタデータ セクションをマージするために使用されるメソッドを提供します。

  • ローダーとその他のランタイム ツールおよびサービスは、"import" API メンバを呼び出すことでメタデータをインポートし、読み込みやアクティベーションなどのタスクを完了できるように、コンポーネントに関する情報を取得します。

このセクションの内容

参照

その他の技術情報

メタデータの概要

メタデータ インターフェイス

メタデータ グローバル静的関数

メタデータ列挙体

メタデータ構造体

メタデータ共用体

標準の EMCA-335 : 共通言語基盤 (CLI: Common Language Infrastructure)

ECMA C# および共通言語基盤 (CLI: Common Language Infrastructure) 規格