型別轉送 (C++/CLI)
型別轉送可讓您將型別從移一個組件 (組件 A) 到另一個組件 (組件 B),如此並不需要重新編譯用戶端,都使用組件 a。
所有平台
在所有的執行階段不支援這項功能。
Windows 執行階段
這項功能不支援在Windows 執行階段。
需求
編譯器選項:/ZW
Common Language Runtime
下列程式碼範例示範如何使用型別轉送。
語法
#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];
參數
new
要從其中移動的型別定義的組件。type
型別定義您要移動到另一個組件。
備註
後的元件 (組件) 一起發行,而會由用戶端應用程式,您可以使用型別轉送從元件 (組件) 的型別移到另一個組件、 傳送更新的元件 (和其他任何所需的組件),並繼續作業而不需重新編譯用戶端應用程式。
型別轉送只適用於現有的應用程式所參考的元件。當您重建應用程式時,必須要有適當的組件參考的應用程式中使用任何型別。
當從組件轉送的型別 (型別 A),您必須新增TypeForwardedTo屬性,該型別,以及組件參考。您所參考的組件必須包含下列其中一項:
定義型別 a。
A TypeForwardedTo屬性的型別 a,以及組件參考。
可轉送的型別中的範例包括:
ref 類別
實值類別
列舉
介面
您不能轉寄下列類型:
泛用型別
原生型別
巢狀型別 (如果您想要轉寄巢狀型別,您應該將轉寄封入型別)
您可以將型別轉送到一般語言 runtime 為目標的任何語言所撰寫的組件。
因此,如果用來建置組件 A.dll 原始程式碼檔會包含型別定義 (ref class MyClass),而您要移動該型別定義 B.dll 的組件中,您會:
移動MyClass鍵入用來建置 B.dll 原始程式碼檔的定義。
建置組件 B.dll
刪除MyClass型別定義用來建置 A.dll,並取代成下列的原始程式碼中:
#using "B.dll" [assembly:TypeForwardedTo(MyClass::typeid)];
建置組件 A.dll。
您可以使用 [A.dll 不需重新編譯用戶端應用程式。
需求
編譯器選項:/clr