Předávání typů (C++/CLI)
Předávání typů umožňuje přesunout typ z jednoho sestavení (sestavení A) do jiného sestavení (sestavení B), tak, že není nutné znovu zkompilovat klienty, kteří spotřebovávají sestavení A.
prostředí Windows Runtime
Tato funkce není v prostředí Windows Runtime podporovaná.
CLR (Common Language Runtime)
Následující příklad kódu ukazuje, jak použít předávání typů.
Syntaxe
#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];
Parametry
new
Sestavení, do kterého přesouváte definici typu.
type
Typ, jehož definici přesouváte do jiného sestavení.
Poznámky
Jakmile se komponenta (sestavení) dodává a používá klientské aplikace, můžete pomocí předávání typů přesunout typ ze komponenty (sestavení) do jiného sestavení, odeslat aktualizovanou komponentu (a další požadovaná sestavení) a klientské aplikace budou fungovat i bez opětovného dokončování.
Předávání typů funguje jenom pro komponenty odkazované existujícími aplikacemi. Při opětovném sestavení aplikace musí existovat příslušné odkazy na sestavení pro všechny typy použité v aplikaci.
Při předávání typu (Typ A) ze sestavení je nutné přidat TypeForwardedTo
atribut pro tento typ, stejně jako odkaz na sestavení. Sestavení, na které odkazujete, musí obsahovat jednu z následujících možností:
Definice pro Typ A.
Atribut
TypeForwardedTo
pro Typ A a také odkaz na sestavení.
Mezi příklady typů, které je možné přeposlat, patří:
ref – třídy
třídy hodnot
výčty
rozhraní
Následující typy nelze předat dál:
Obecné typy
Nativní typy
Vnořené typy (pokud chcete přesměrovat vnořený typ, měli byste přeposlat uzavřený typ).
Typ můžete předat sestavení vytvořenému v libovolném jazyce, který cílí na modul CLR (Common Language Runtime).
Pokud tedy soubor zdrojového kódu, který se používá k sestavení sestavení A.dll obsahuje definici typu (ref class MyClass
) a chtěli jste tuto definici typu přesunout do sestavení B.dll, měli byste:
Přesuňte definici
MyClass
typu do souboru zdrojového kódu použitého k sestavení B.dll.Sestavení B.dll
Odstraňte definici
MyClass
typu ze zdrojového kódu použitého k sestavení A.dll a nahraďte ji následujícím kódem:#using "B.dll" [assembly:TypeForwardedTo(MyClass::typeid)];
Sestavení A.dll sestavení
Používejte A.dll bez rekompilování klientských aplikací.
Požadavky
Možnost kompilátoru: /clr