Condividi tramite


Inoltro del tipo (C++/CLI)

L'inoltro dei tipi consente di immettere un tipo da un assembly (assembly A) in un altro assembly (assembly B), quale, non è necessario ricompilare i client che utilizzano l'assembly A.

Tutte le piattaforme

Questa funzionalità non è supportata in tutti i runtime.

Finestre runtime

Questa funzionalità non è supportata in Windows Runtime.

ms177220.collapse_all(it-it,VS.110).gifRequisiti

Opzione del compilatore: /ZW

Common Language Runtime

Nell'esempio di codice seguente viene illustrato come utilizzare l'inoltro di tipi.

ms177220.collapse_all(it-it,VS.110).gifSintassi

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

ms177220.collapse_all(it-it,VS.110).gifParametri

  • new
    L'assembly in cui si sta spostando la definizione del tipo.

  • type
    La definizione del tipo di cui si desidera spostare in un altro assembly.

ms177220.collapse_all(it-it,VS.110).gifNote

Dopo aver viene fornito di un componente (assembly) e viene utilizzata dalle applicazioni client, è possibile utilizzare l'inoltro di tipi per spostare un tipo dal componente (assembly) in un altro assembly, forniscono il componente aggiornata (e qualsiasi assembly aggiuntivi necessari) e le applicazioni client potranno comunque essere eseguite senza essere ricompilato.

Tipo che inoltra è supportata solo per i componenti fare riferimento a esse da applicazioni esistenti.Quando si ricompila un'applicazione, è necessario che i riferimenti ad assembly appropriati per i tipi utilizzati nell'applicazione.

Per inviare un tipo (digitare A) in un assembly, è necessario aggiungere l'attributo di TypeForwardedTo per quel tipo nonché un riferimento a un assembly.L'assembly che fatto riferimento contiene una delle seguenti operazioni:

  • La definizione di tipo Di.

  • Un attributo di TypeForwardedTo per tipo A nonché un riferimento a un assembly.

Esempi di tipi che possono essere inviati includono:

  • classi di riferimento

  • classi di valore

  • le enumerazioni

  • interfacce

Non è possibile inoltrare i seguenti tipi:

  • Tipi generici

  • Tipi nativi

  • Tipi annidati (se si desidera inoltrare un tipo annidato, è necessario inviare il tipo di inclusione)

È possibile inoltrare un tipo in un assembly creato in qualsiasi linguaggio che puntano a Common Language Runtime.

Pertanto, se un file di codice sorgente che viene utilizzato per compilare l'assembly A.dll contiene una definizione di tipo (ref class MyClass) e si desiderava per spostare la definizione del tipo all'assembly B.dll, è possibile:

  1. Spostare la definizione del tipo di MyClass in un file di codice sorgente utilizzato per compilare B.dll.

  2. Compilare l'assembly B.dll

  3. Eliminare la definizione del tipo di MyClass dal codice sorgente utilizzato per compilare A.dll e sostituirlo con quanto segue:

    #using "B.dll"
    [assembly:TypeForwardedTo(MyClass::typeid)];
    
  4. Compilare l'assembly A.dll.

  5. Utilizzare Estensioni senza ricompilare le applicazioni client.

ms177220.collapse_all(it-it,VS.110).gifRequisiti

Opzione del compilatore: /clr