类型转发 (C++/CLI)
类型转发 可以从一个程序集 (程序集 A) 移动类型到另一个程序集 (程序集 B),此类中,重新编译使用程序集 A. 的客户端并不是必需的。
所有平台
此功能不在所有运行时中支持。
运行时的窗口
此函数在 Windows 运行时不受支持。
要求
编译器选项: /ZW
公共语言运行时
下面的代码示例演示如何使用类型转发。
语法
#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];
参数
new
您将该类型定义的程序集。type
类型您将另一个程序集的定义。
备注
在和客户端应用程序使用元素 (程序集) 后计时器,您可以使用类型转发从元素 (程序集) 将类型移到另一个程序集,提供更新组件 (和所需的任何其他的程序集),因此,客户端应用程序仍有效,而无需重新编译。
转发类型的元素仅工作引用由现有应用程序。 当重新生成应用程序时,必须具有适当的程序集提供用于应用程序的任何类型引用。
当转发类型时 (从程序集中的类型),则必须添加该类型的 TypeForwardedTo 属性,以及程序集引用。 所引用的程序集必须包含下列操作之一:
类型 ". 的定义。
类型的一个 TypeForwardedTo 属性,以及程序集引用。
可以转发类型的示例包括:
ref 类
值类
枚举
接口
您无法转发以下类型:
泛型类型
本机类型
嵌套类型 (如果要转发嵌套类型,应向前为封闭类型)
可以转发类型到任何语言编写的程序集面向公共语言运行时。
因此,因此,如果用于生成 A.dll 程序集的源代码文件包含类型定义 (ref class MyClass) 和要将该类型定义的程序集时,您需要:
移动 MyClass 类型定义移到使用的源代码文件生成 B.dll。
生成程序集时
从使用的源代码中删除 MyClass 类型定义生成 A.dll,并用以下代码替换它:
#using "B.dll" [assembly:TypeForwardedTo(MyClass::typeid)];
生成程序集 A.dll。
使用 A.dll,而无需重新编译客户端应用程序。
要求
编译器选项: /clr