プロセスへの共通言語ランタイムの読み込み
ホストは、マネージ コードを実行する前に、共通言語ランタイムを読み込み、初期化する必要があります。プロセスではランタイムがまだ実行されていないので、すべてのホストはアンマネージ スタブで始まります。.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] パラメータです。
メモ : |
---|
バージョン 1.0 および 1.1 については、CLSID_CorRuntimeHost および IID_ICorRuntimeHost を使用して ICorRuntimeHost インターフェイスを取得します。 |
ICLRRuntimeHost は、ランタイムの起動、マネージ コードの実行、共通言語ランタイムによって実装されたマネージャをアクセスするための ICLRControl インターフェイスへのポインタの取得、および IHostControl インターフェイスを実装するホスト コントロール オブジェクトの登録に使用します。共通言語ランタイムは、IHostControl を呼び出して、ホストに実装されているマネージャを判断します。
参照
関連項目
AppDomainSetup Class
CorBindToRuntimeEx
ICLRRuntimeHost
ICLRControl