Przekazywanie dalej typu (C++/CLI)

Przekazywanie typów umożliwia przeniesienie typu z jednego zestawu (zestawu A) do innego zestawu (zestawu B), tak aby nie było konieczne ponowne kompilowania klientów korzystających z zestawu A.

Środowisko wykonawcze systemu Windows

Ta funkcja nie jest obsługiwana w środowisko wykonawcze systemu Windows.

środowiska uruchomieniowe w trakcie wykonania

W poniższym przykładzie kodu pokazano, jak używać przekazywania typów.

Składnia

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

Parametry

new
Zestaw, do którego przenosisz definicję typu.

type
Typ, którego definicja jest przenoszona do innego zestawu.

Uwagi

Gdy składnik (zestaw) jest dostarczany i jest używany przez aplikacje klienckie, można użyć przekazywania typów, aby przenieść typ ze składnika (zestawu) do innego zestawu, wysłać zaktualizowany składnik (i wszystkie dodatkowe wymagane zestawy), a aplikacje klienckie będą nadal działać bez ponownego komilowania.

Przekazywanie typu działa tylko dla składników, do których odwołuje się istniejąca aplikacja. Podczas odbudowy aplikacji muszą istnieć odpowiednie odwołania do zestawów dla wszystkich typów używanych w aplikacji.

Podczas przekazywania typu (typ A) z zestawu należy dodać TypeForwardedTo atrybut dla tego typu, a także odwołanie do zestawu. Zestaw, do którego się odwołujesz, musi zawierać jedną z następujących czynności:

  • Definicja typu A.

  • Atrybut TypeForwardedTo typu A, a także odwołanie do zestawu.

Przykłady typów, które można przekazywać dalej, to:

  • klasy ref

  • klasy wartości

  • typy wyliczeniowe

  • interfejsy

Nie można przekazywać dalej następujących typów:

  • Typy ogólne

  • Typy natywne

  • Typy zagnieżdżone (jeśli chcesz przekazać zagnieżdżony typ, należy przekazać dalej otaczający typ)

Możesz przekazać typ do zestawu utworzonego w dowolnym języku przeznaczonym dla środowiska uruchomieniowego języka wspólnego.

Dlatego jeśli plik kodu źródłowego używany do kompilowania zestawu A.dll zawiera definicję typu (ref class MyClass) i chcesz przenieść definicję tego typu do zestawu B.dll, należy wykonać następujące czynności:

  1. Przenieś definicję MyClass typu do pliku kodu źródłowego używanego do kompilowania biblioteki B.dll.

  2. Kompilowanie zestawu B.dll

  3. Usuń definicję MyClass typu z kodu źródłowego użytego do skompilowania biblioteki A.dll i zastąp ją następującym kodem:

    #using "B.dll"
    [assembly:TypeForwardedTo(MyClass::typeid)];
    
  4. Skompiluj zestaw A.dll.

  5. Użyj biblioteki A.dll bez ponownej kompilacji aplikacji klienckich.

Wymagania

Opcja kompilatora: /clr