型の転送 (C++/CLI)
、アセンブリ A. を実行するクライアントを再コンパイルする必要はありません。 1 個のアセンブリ (アセンブリ A)から他の型をアセンブリ (アセンブリ B)を移動するには、アセンブリへのコピーの 割り当てを、こうしたアセンブリ入力します。
すべてのプラットフォーム
この機能は、すべてのランタイムでサポートされていません。
ランタイム ウィンドウ
この機能は Windows ランタイムではサポートされていません。
要件
コンパイラ オプション: /ZW
共通言語ランタイム
次のコード例は、型の転送を使用する方法を示します。
構文
#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];
パラメーター
new
その型定義を移動するアセンブリ。type
、他のアセンブリに移動する型定義。
解説
コンポーネント (アセンブリ)の配信は、クライアント アプリケーションによって他のアセンブリにコンポーネント (アセンブリ)から型を移動する型の転送を使用して付属しています更新されたコンポーネント (および必要な追加のアセンブリ)を使用して、と、クライアント アプリケーションでも、再コンパイルで動作します。
既存のアプリケーションが参照するコンポーネントの作業だけコピーする型。アプリケーションを再度ビルドすると、アプリケーションで使用されるすべての型の適切なアセンブリ参照が必要です。
型 ()は、アセンブリの型をコピーする場合、その種類の TypeForwardedTo の属性、およびアセンブリ参照を追加します。参照先アセンブリで次のいずれかを含める必要があります:
型は. の定義。
型はの TypeForwardedTo 属性は、アセンブリの参照。
ロールバックできる型の例は次のとおりです。:
ref クラス
値クラス
列挙型
インターフェイス
次の型をロールバックできません:
ジェネリック型
ネイティブ型
入れ子にされた型 (入れ子にされた型をコピーする場合は、外側の型をコピーする必要があります)
ターゲットなすべての言語に共通言語ランタイムで作成されたアセンブリに型をコピーできます。
したがって、アセンブリ A.dll をビルドに使用されるソース・コード ファイルが型定義 (ref class MyClass)が含まれている場合、および、 B.dll のアセンブリに型定義を移動するに思いました:
B.dll をビルドに使用されたソース・コード ファイルに MyClass の型定義を移動します。
B.dll アセンブリをビルド
A.dll をビルドに使用したソース・コードから MyClass の型定義を削除し、に置き換えてください:
#using "B.dll" [assembly:TypeForwardedTo(MyClass::typeid)];
A.dll アセンブリをビルドします。
クライアント アプリケーションを再コンパイルしないで A.dll を使用します。
要件
コンパイラ オプション: /clr