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:
Przenieś definicję
MyClass
typu do pliku kodu źródłowego używanego do kompilowania B.dll.Kompilowanie B.dll zestawu
Usuń definicję
MyClass
typu z kodu źródłowego użytego do skompilowania A.dll i zastąp ją następującym kodem:#using "B.dll" [assembly:TypeForwardedTo(MyClass::typeid)];
Skompiluj A.dll zestawu.
Używaj A.dll bez ponownej kompilacji aplikacji klienckich.
Wymagania
Opcja kompilatora: /clr