<PreferComInsteadOfManagedRemoting> 要素
アプリケーション ドメインの境界を越えるすべての呼び出しについて、リモート処理ではなく COM 相互運用機能をランタイムで使用するかどうかを指定します。
<PreferComInsteadOfManagedRemoting enabled="true|false"/>
属性および要素
以降のセクションでは、属性、子要素、および親要素について説明します。
属性
属性 |
説明 |
---|---|
enabled |
必須の属性です。 アプリケーション ドメインの境界を越える場合に、リモート処理ではなく COM 相互運用機能をランタイムで使用するかどうかを示します。 |
enabled 属性
値 |
説明 |
---|---|
false |
ランタイムは、アプリケーション ドメインの境界を越える場合にリモート処理を使用します。 これは、既定の設定です。 |
true |
ランタイムは、アプリケーション ドメインの境界を越える場合に COM 相互運用機能を使用します。 |
子要素
なし。
親要素
要素 |
説明 |
---|---|
configuration |
共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。 |
runtime |
アセンブリのバインディングとガベージ コレクションに関する情報が含まれています。 |
解説
enabled 属性を true に設定した場合、ランタイムの動作は次のようになります。
IUnknown インターフェイスが COM インターフェイスを通じてドメインに入ったとき、ランタイムは、IManagedObject インターフェイスの IUnknown::QueryInterface を呼び出しません。 代わりに、オブジェクトを囲むランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper) を構築します。
このドメインで生成された COM 呼び出し可能ラッパー (CCW: COM Callable Wrapper) の IManagedObject インターフェイスの QueryInterface 呼び出しを受け取った場合、ランタイムは E_NOINTERFACE を返します。
この 2 つの動作によって、アプリケーション ドメインの境界を越えるマネージ オブジェクト間での COM インターフェイスを介する呼び出しは、すべてリモート処理ではなく COM と COM 相互運用機能を使用するようになります。
使用例
次の例は、分離の境界を越える場合に、ランタイムで COM 相互運用機能が使用されるように指定する方法を示しています。
<configuration>
<runtime>
<PreferComInsteadOfManagedRemoting enabled="true"/>
</runtime>
</configuration>