プロセスへの共通言語ランタイムの読み込み

ホストは、マネージ コードを実行する前に、共通言語ランタイムを読み込み、初期化する必要があります。プロセスではランタイムがまだ実行されていないので、すべてのホストはアンマネージ スタブで始まります。.NET Framework には、ホストがランタイムを起動するために使用できる、ホスト API と呼ばれる一連のアンマネージ API が用意されています。詳細については、「ホスト インターフェイス」を参照してください。

ホストは、ランタイムをプロセスに読み込むために、CorBindToRuntimeEx 関数を呼び出します。CorBindToRuntimeEx のプロトタイプは、.NET Framework 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] パラメータです。

Noteメモ :

バージョン 1.0 および 1.1 については、CLSID_CorRuntimeHost および IID_ICorRuntimeHost を使用して ICorRuntimeHost インターフェイスを取得します。

ICLRRuntimeHost は、ランタイムの起動、マネージ コードの実行、共通言語ランタイムによって実装されたマネージャをアクセスするための ICLRControl インターフェイスへのポインタの取得、および IHostControl インターフェイスを実装するホスト コントロール オブジェクトの登録に使用します。共通言語ランタイムは、IHostControl を呼び出して、ホストに実装されているマネージャを判断します。

参照

関連項目

AppDomainSetup Class
CorBindToRuntimeEx
ICLRRuntimeHost
ICLRControl

概念

マネージ ホスト コードへの遷移

その他の技術情報

共通言語ランタイムのホスト