共用方式為


型別轉送 (C++/CLI)

型別轉送可讓您將型別從移一個組件 (組件 A) 到另一個組件 (組件 B),如此並不需要重新編譯用戶端,都使用組件 a。

所有平台

在所有的執行階段不支援這項功能。

Windows 執行階段

這項功能不支援在Windows 執行階段。

ms177220.collapse_all(zh-tw,VS.110).gif需求

編譯器選項:/ZW

Common Language Runtime

下列程式碼範例示範如何使用型別轉送。

ms177220.collapse_all(zh-tw,VS.110).gif語法

#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];

ms177220.collapse_all(zh-tw,VS.110).gif參數

  • new
    要從其中移動的型別定義的組件。

  • type
    型別定義您要移動到另一個組件。

ms177220.collapse_all(zh-tw,VS.110).gif備註

後的元件 (組件) 一起發行,而會由用戶端應用程式,您可以使用型別轉送從元件 (組件) 的型別移到另一個組件、 傳送更新的元件 (和其他任何所需的組件),並繼續作業而不需重新編譯用戶端應用程式。

型別轉送只適用於現有的應用程式所參考的元件。當您重建應用程式時,必須要有適當的組件參考的應用程式中使用任何型別。

當從組件轉送的型別 (型別 A),您必須新增TypeForwardedTo屬性,該型別,以及組件參考。您所參考的組件必須包含下列其中一項:

  • 定義型別 a。

  • A TypeForwardedTo屬性的型別 a,以及組件參考。

可轉送的型別中的範例包括:

  • ref 類別

  • 實值類別

  • 列舉

  • 介面

您不能轉寄下列類型:

  • 泛用型別

  • 原生型別

  • 巢狀型別 (如果您想要轉寄巢狀型別,您應該將轉寄封入型別)

您可以將型別轉送到一般語言 runtime 為目標的任何語言所撰寫的組件。

因此,如果用來建置組件 A.dll 原始程式碼檔會包含型別定義 (ref class MyClass),而您要移動該型別定義 B.dll 的組件中,您會:

  1. 移動MyClass鍵入用來建置 B.dll 原始程式碼檔的定義。

  2. 建置組件 B.dll

  3. 刪除MyClass型別定義用來建置 A.dll,並取代成下列的原始程式碼中:

    #using "B.dll"
    [assembly:TypeForwardedTo(MyClass::typeid)];
    
  4. 建置組件 A.dll。

  5. 您可以使用 [A.dll 不需重新編譯用戶端應用程式。

ms177220.collapse_all(zh-tw,VS.110).gif需求

編譯器選項:/clr