Importazione di una libreria dei tipi come assembly

Solitamente le definizioni dei tipi COM risiedono in una libreria dei tipi. I compilatori conformi a CLS, al contrario, producono metadati di tipi in un assembly. Le due fonti di informazioni sui tipi sono piuttosto diverse. In questo argomento vengono illustrate le tecniche che permettono di generare metadati da una libreria dei tipi. L'assembly risultante è detto assembly di interoperabilità e le informazioni sul tipo che contiene consentono alle applicazioni .NET Framework di utilizzare tipi COM.

Queste informazioni sul tipo possono essere rese disponibili all'applicazione in due modi:

  • Utilizzo di assembly di interoperabilità disponibili solo nella fase di progettazione: a partire da .NET Framework versione 4 è possibile indicare al compilatore di incorporare nel file eseguibile informazioni sul tipo ottenute dall'assembly di interoperabilità. Il compilatore incorpora solo le informazioni sul tipo utilizzate dall'applicazione. Non è necessario distribuire l'assembly di interoperabilità con l'applicazione. Questa è la tecnica consigliata.

  • Distribuzione di assembly di interoperabilità: è possibile creare un riferimento standard all'assembly di interoperabilità. In questo caso è necessario distribuire l'assembly di interoperabilità con l'applicazione. Se si utilizza questa tecnica senza tuttavia utilizzare un componente COM privato, fare sempre riferimento all'assembly di interoperabilità primario (PIA, Primary Interop Assembly) pubblicato dall'autore del componente COM che si intende incorporare nel codice gestito. Per ulteriori informazioni sulla creazione e sull'utilizzo di assembly di interoperabilità primari, vedere Assembly di interoperabilità primari.

Quando si utilizzano assembly di interoperabilità disponibili solo nella fase di progettazione è possibile incorporare informazioni sul tipo dall'assembly di interoperabilità primario pubblicato dall'autore del componente COM. Tuttavia, non è necessario distribuire l'assembly di interoperabilità primario con l'applicazione.

L'utilizzo di assembly di interoperabilità disponibili solo nella fase di progettazione riduce la dimensione dell'applicazione, in quanto la maggior parte delle applicazioni non utilizza tutte le funzionalità di un componente COM. Il compilatore è molto efficiente quando incorpora informazioni sul tipo. Se l'applicazione utilizza solo alcuni dei metodi su un'interfaccia COM, il compilatore non incorpora i metodi inutilizzati. Quando un'applicazione con informazioni sul tipo incorporate interagisce con un'altra applicazione di tale tipo o con un'applicazione che utilizza un assembly di interoperabilità primario, Common Language Runtime utilizza regole di equivalenza fra tipi per determinare se due tipi con lo stesso nome rappresentano lo stesso tipo COM. Per utilizzare gli oggetti COM non è necessario conoscere queste regole. Tuttavia, se si desidera ottenere maggiori informazioni sulle regole, vedere Equivalenza del tipo e tipi di interoperabilità incorporati.

Generazione di metadati

Le librerie dei tipi COM possono essere file autonomi con estensione .tlb, ad esempio Loanlib.tlb. Alcune librerie dei tipi sono incorporate nella sezione delle risorse di un file con estensione .dll o .exe. Altre fonti di informazioni sulle librerie dei tipi sono i file con estensione .olb e .ocx.

Una volta individuata la libreria dei tipi contenente l'implementazione del tipo COM desiderato, saranno disponibili le opzioni seguenti per generare un assembly di interoperabilità contenente i metadati del tipo:

Per ulteriori informazioni sul processo di importazione per l'interoperabilità COM, vedere Riepilogo della conversione da libreria dei tipi ad assembly.

Vedere anche

Attività

Procedura: aggiungere riferimenti alle librerie dei tipi

Procedura: generare assembly di interoperabilità da librerie dei tipi

Procedura dettagliata: incorporamento delle informazioni sui tipi da assembly di Microsoft Office (C# e Visual Basic)

Riferimenti

Tlbimp.exe (utilità di importazione della libreria dei tipi)

TypeLibConverter

Concetti

Esposizione di componenti COM a .NET Framework

Personalizzazione di wrapper standard

Utilizzo di tipi COM nel codice gestito

Compilazione di un progetto di interoperabilità

Distribuzione di una applicazione di interoperabilità

Altre risorse

Riepilogo della conversione da libreria dei tipi ad assembly