Personalizzazione dei wrapper di runtime disponibili per la chiamata

In Common Language Runtime viene prodotto un wrapper di runtime disponibile per la chiamata (Runtime Callable Wrapper, RCW) dai metadati in un assembly di interoperabilità. A differenza di altri assembly, quelli di interoperabilità vengono generati mediante l'importazione delle librerie dei tipi. Sebbene con il processo di importazione vengano in genere prodotti assembly di interoperabilità precisi, in alcuni casi è possibile o necessario modificare l'assembly di interoperabilità per produrre un RCW personalizzato.

Esistono vari motivi per personalizzare un RCW, quali:

  • Uno o più tipi richiedono ulteriori informazioni di marshalling.

  • In una libreria dei tipi sono presenti molti tipi specializzati non riconoscibili per il gestore di marshalling.

  • Una libreria dei tipi di grandi dimensioni può includere tipi non necessari a un'applicazione. È possibile evitare di distribuire tipi non necessari mediante la creazione di un assembly di interoperabilità dal codice sorgente gestito.

  • Con il codice sorgente di RCW contenente una parte dei tipi di una libreria dei tipi di grandi dimensioni, è possibile evitare di distribuire tipi non necessari.

Come mostrato nell'illustrazione riportata di seguito, è possibile importare una libreria dei tipi come DLL gestita senza personalizzare il wrapper (a sinistra). In alternativa, è possibile creare un wrapper personalizzato.

Informazioni di marshalling in librerie dei tipi importate

Utilità di importazione della libreria dei tipi

Se si rende necessario personalizzare il wrapper di runtime disponibile per la chiamata con istruzioni di marshalling diverse o aggiuntive, esistono due possibilità:

  • Modificare l'assembly di interoperabilità per individuare la sintassi problematica e sostituirla con una alternativa. Questa opzione è consigliata per modifiche di marshalling secondarie.

  • Creare un wrapper manualmente in base a un file IDL o una libreria dei tipi esistente. La dichiarazione manuale di tipi COM è un'attività complessa per la quale è necessario avere familiarità con l'utilità di importazione della libreria dei tipi (Tlbimp.exe), il comportamento predefinito del gestore di marshalling di interoperabilità e COM. Si tratta della scelta migliore quando si deve eseguire il marshalling di un'intera libreria di tipi specializzati oppure occorre il codice sorgente di RCW.

Vedere anche

Attività

Procedura: modificare assembly di interoperabilità
Procedura: creare wrapper manualmente

Concetti

Tipi di dati COM
Personalizzazione dei wrapper COM disponibili per la chiamata

Altre risorse

Marshalling dei dati con interoperabilità COM