Перенаправление типов (C++/CLI)
Препровождение типа позволяет перемещать типа из одной сборки (сборки a) в другую сборку (B) сборки, нет необходимости перекомпилировать клиенты, использующие а. сборки.
Все платформы
Эта функция не поддерживается во всех средах выполнения.
Колесо
Эта функция не поддерживается в Среда выполнения Windows.
Требования
Параметр компилятора: /ZW
Среда CLR
В следующем примере кода показано, как использовать препровождение типа.
Синтаксис
#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];
Параметры
new
Сборка, в которую перемещается определение типа.type
Определение типа, который необходимо переместить в другую сборку.
Заметки
После того как компонент (сборка) поставляется и используется клиентскими приложениями, можно использовать препровождение типа для перемещения тип из компонентов (сборки) в другую сборку, грузите обновлен компонент (и любые дополнительные необходимые сборки) и клиентские приложения по-прежнему будут работать без повторной компиляции.
Тип переадресуя работает только для компонентов, на которые ссылается существующими приложениями.При перестроении приложение, должен иметь соответствующие ссылки на сборки для всех типов, используемых в приложении.
Переадресуя введите тип (a) из сборки необходимо добавить атрибут TypeForwardedTo для данного типа, а также ссылка на сборку.Сборка, на которую имеется ссылка должна содержать одно из следующих действий:
А. определение типа.
Атрибут TypeForwardedTo для типа a, а также ссылка на сборку.
Примеры типов, которые могут быть переадресованы включают:
классы ref
классы значения
перечисления
интерфейсы;
Не удается переадресовать следующие типы:
Универсальные типы
Собственные типы
Вложенные типы (если следует переадресовать вложенный тип, то следует переадресовать включающего тип)
Можно переадресованы тип в сборке написанный на любом языке, предназначенных для среды CLR.
Таким образом, если файл исходного кода, используемый для построения сборки 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