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 biblioteki B.dll.Kompilowanie zestawu B.dll
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)];
Skompiluj zestaw A.dll.
Użyj biblioteki A.dll bez ponownej kompilacji aplikacji klienckich.
Wymagania
Opcja kompilatora: /clr
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla