Condividi tramite


Importazione di una libreria dei tipi come assembly

Aggiornamento: novembre 2007

Solitamente le definizioni dei tipi COM risiedono in una libreria dei tipi. I compilatori compatibili con CLS, al contrario, producono metadati di tipi in un assembly. Le due fonti di informazioni sui tipi sono piuttosto diverse.

Nota:

Se disponibile, utilizzare sempre l'assembly di interoperabilità primario pubblicato dall'autore del componente COM che si desidera incorporare nel codice gestito. L'assembly di interoperabilità primario contiene tipi già importati che possono essere immediatamente attivati e chiamati da codice gestito. Per informazioni dettagliate sulla creazione e sull'utilizzo di assembly di interoperabilità primari, vedere Assembly di interoperabilità primari.

In questo argomento vengono illustrate le tecniche che permettono di generare metadati da una libreria dei tipi. L'assembly risultante è definito assembly di interoperabilità.

Generazione di metadati

Le librerie dei tipi COM possono essere costituite da file TLB autonomi, come nel caso di Loanlib.tlb. Alcune librerie dei tipi sono incorporate nella sezione risorse di un file DLL o EXE. Altre fonti di informazioni delle librerie dei tipi sono rappresentate dai file OLB e OCX.

Una volta individuata la libreria dei tipi contenente l'implementazione del tipo COM desiderato, sarà possibile utilizzare uno degli strumenti elencati di seguito per generare un assembly di interoperabilità contenente i metadati del tipo:

  • Visual Studio 2005

    Visual Studio 2005 converte automaticamente i tipi COM di una libreria dei tipi in metadati di un assembly. Per istruzioni, vedere Procedura: aggiungere riferimenti alle librerie dei tipi.

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

    L'utilità di importazione della libreria dei tipi utilizza le opzioni della riga di comando per modificare i metadati nel file di interoperabilità, importa tipi da una libreria dei tipi esistente e genera un assembly di interoperabilità e uno spazio dei nomi. Per istruzioni, vedere Procedura: generare assembly di interoperabilità da librerie dei tipi.

  • Classe TypeLibConverter

    La classe TypeLibConverter dello spazio dei nomi System.Runtime.InteropServices fornisce metodi per la conversione delle coclassi e delle interfacce di una libreria dei tipi in metadati di un assembly. Questa API genera gli stessi metadati prodotti da Tlbimp.exe. A differenza di Tlbimp.exe, tuttavia, la classe TypeLibConverter è in grado di convertire in metadati una libreria dei tipi in memoria.

  • Wrapper personalizzati

    Quando una libreria dei tipi non è disponibile o non è corretta, è possibile creare un duplicato della definizione della classe o dell'interfaccia nel codice sorgente gestito. In seguito si compila il codice sorgente con un compilatore che si avvale del runtime per produrre metadati in un assembly.

    Per definire manualmente i tipi COM, è necessario avere accesso agli elementi elencati di seguito:

    • Esatte descrizioni delle coclassi e delle interfacce che si desidera definire.

    • Un compilatore, come quello di C#, che possa generare le definizioni di classe appropriate per .NET Framework.

    • Conoscenza delle regole per la conversione di una libreria dei tipi in assembly.

    Creare un wrapper personalizzato è una tecnica di livello avanzato che viene eseguita raramente. Per ulteriori informazioni sulla generazione di wrapper personalizzati, vedere Personalizzazione di wrapper standard.

Per informazioni dettagliate 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

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à

Riferimenti

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

TypeLibConverter

Altre risorse

Riepilogo della conversione da libreria dei tipi ad assembly