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).

Takže pokud soubor zdrojového kódu, který se používá k sestavení sestavení A.dll obsahuje definici typu (ref class MyClass) a chcete přesunout tuto definici typu do sestavení B.dll, byste:

  1. Přesuňte definici MyClass typu do souboru zdrojového kódu použitého k sestavení B.dll.

  2. Sestavení sestavení B.dll

  3. Odstraňte definici MyClass typu ze zdrojového kódu použitého k sestavení knihovny A.dll a nahraďte ji následujícím kódem:

    #using "B.dll"
    [assembly:TypeForwardedTo(MyClass::typeid)];
    
  4. Sestavení sestavení A.dll.

  5. Používejte knihovnu A.dll bez rekompilování klientských aplikací.

Požadavky

Možnost kompilátoru: /clr