更新 : 2007 年 11 月
ホストは、マネージ コードを実行する前に、共通言語ランタイムを読み込み、初期化する必要があります。プロセスではランタイムがまだ実行されていないので、すべてのホストはアンマネージ スタブで始まります。.NET Framework には、ホストがランタイムを起動するために使用できる、ホスト API と呼ばれる一連のアンマネージ API が用意されています。詳細については、「ホスト インターフェイス」を参照してください。
ホストは、ランタイムをプロセスに読み込むために、CorBindToRuntimeEx 関数を呼び出します。CorBindToRuntimeEx 関数のプロトタイプは、Windows Software Development Kit (SDK) の Include ディレクトリの Mscoree.h の中にあります。ホストは、CorBindToRuntimeEx 関数を使用して、読み込むランタイムのバージョンとガベージ コレクション、アセンブリ読み込みなどの基本的な関数の動作を制御します。ホストが設定できる値のリストを次の表に示します。
値 |
説明 |
---|---|
同時実行ガベージ コレクション |
ガベージ コレクションをバックグラウンド スレッドで行うか、ユーザー コードを実行するスレッドで行うかを指定します。 |
ローダーの最適化処理 |
アセンブリをドメイン中立で読み込むかどうかを制御します。アセンブリをドメイン中立で読み込むと、JIT コンパイル済みのアセンブリ コードと読み取り専用ランタイム データ構造体を 1 つのプロセス内のすべてのアプリケーション ドメインで共有できます。 詳細については、「アプリケーション ドメインとアセンブリ」を参照してください。 |
サーバーまたはワークステーション |
ランタイムのワークステーション ビルド ("wks") とサーバー ビルド ("svr") のどちらを読み込むかを指定します。 |
バージョン |
このランタイムのどのバージョンをプロセスに読み込むかを指定します。バージョン 1.0 を読み込むには、"v1.0.3705" を使用します。バージョン 1.1 を読み込むには、"v1.1.4322" を使用します。バージョン 2.0 を読み込むには、"v2.0.50727" を使用します。プロセスで読み込むことができるランタイムのバージョンは、1 つのみです。 詳細については、「side-by-side 実行」を参照してください。 |
CorBindToRuntimeEx 関数は、他に次の 3 つのパラメータを受け取ります。ICLRRuntimeHostを持つオブジェクトの CLSID である CLSID_CLRRuntimeHost、インターフェイスの IID である IID_ICLRRuntimeHost、および ICLRRuntimeHost ポインタを受け取る [out] パラメータです。
![]() |
---|
バージョン 1.0 および 1.1 では、CLSID_CorRuntimeHost と IID_ICorRuntimeHost を使用して ICorRuntimeHostを取得します。 |
ICLRRuntimeHostは、ランタイムの起動、マネージ コードの実行、共通言語ランタイムによって実装されたマネージャをアクセスするための ICLRControlへのポインタの取得、および IHostControlを実装するホスト コントロール オブジェクトの登録に使用します。共通言語ランタイムは、IHostControlを呼び出して、ホストに実装されているマネージャを判断します。