Typweiterleitung (C++/CLI)

Typweiterleitung können Sie einen Typ aus einer Assembly (Assembly A) zu verschieben, in einer anderen Assembly (Assembly B), sodass es nicht erforderlich ist, kompilieren Sie die Assembly A Clients verarbeiten können.

Alle Plattformen

Diese Funktion ist nicht in allen Laufzeiten unterstützt.

Windows Runtime

Der Name dieser Funktion in Windows-Runtime nicht unterstützt.

ms177220.collapse_all(de-de,VS.110).gifAnforderungen

Compileroption: /ZW

Common Language Runtime

Im folgenden Codebeispiel wird veranschaulicht, wie Typweiterleitung verwendet.

ms177220.collapse_all(de-de,VS.110).gifSyntax

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

ms177220.collapse_all(de-de,VS.110).gifParameter

  • new
    Die Assembly, in die Sie die Typdefinition verschieben.

  • type
    Die dessen Definition des Typs, die Sie in eine andere Assembly verschieben.

ms177220.collapse_all(de-de,VS.110).gifHinweise

Nachdem eine Komponente (Assembly) bereitgestellt wird und die von Clientanwendungen verwendet wird, können Sie Typweiterleitung können Sie einen Typ aus der Komponente (Assembly) in eine andere Assembly verschieben, liefern die aktualisierte Teil (und zusätzliche Assemblys erforderlich) und den Clientanwendungen weiterhin funktionieren, ohne neu kompiliert wird.

Der Typ, der nur weitergeleitet werden kann, für Komponenten, die über vorhandene Anwendungen verwiesen wird.Wenn Sie eine Anwendung neu erstellen, müssen die entsprechenden Typen für alle Assemblyverweise vorhanden sein, die in der Anwendung verwendet werden.

Wenn ein Typ weitergeleitet werden (Typ A) aus einer Assembly, müssen Sie das TypeForwardedTo-Attribut für diesen Typ sowie einen Verweis hinzufügen.Die Assembly, die Sie verweisen, muss eines der folgenden Elemente enthalten:

  • Die Definition für den Typ A.

  • Ein TypeForwardedTo-Attribut für den Typ A sowie ein Assemblyverweis.

Beispiele dafür sind Typen weitergeleitetes sein können:

  • ref-Klassen

  • Werts Klassen

  • Enumerationen

  • interfaces

Sie können die folgenden Typen nicht weiterleiten:

  • Generische Typen

  • Systemeigene Typen

  • Geschachtelte Typen (wenn Sie einen geschachtelten Typ übergeben möchten, sollten Sie den einschließenden Typ übergeben)

Sie können einen Typ in einer Assembly weitergeleitet werden, die in einer beliebigen Sprache erstellt wird, die die Common Language Runtime einbindet.

Wenn eine Quellcodedatei, die verwendet wird, um eine Assembly A.dll zu erstellen, eine Typdefinition (ref class MyClass) enthält und Sie diese Typdefinition wollte, verschieben Sie auf Assembly B.dll wurde:

  1. Verschieben Sie die MyClass-Typdefinition in eine Quellcodedatei, die verwendet wird, um B.dll zu erstellen.

  2. Erstellen Sie Assembly B.dll

  3. Löschen Sie die MyClass-Typdefinition aus dem Quellcode, der verwendet wird, um A.dll zu erstellen, und ersetzen Sie sie durch den folgenden Code:

    #using "B.dll"
    [assembly:TypeForwardedTo(MyClass::typeid)];
    
  4. Erstellen Sie Assembly A.dll.

  5. Verwenden von A.dll, ohne Neukompilierung Clientanwendungen.

ms177220.collapse_all(de-de,VS.110).gifAnforderungen

Compileroption: /clr