Importar una biblioteca de tipos como un ensamblado

Actualización: noviembre 2007

Normalmente, las definiciones de tipos COM residen en una biblioteca de tipos. Por otro lado, los compiladores compatibles con CLS producen metadatos de tipos en un ensamblado. Los dos orígenes de información de tipos son muy diferentes.

Nota:

Siempre que esté disponible, utilice el ensamblado de interoperabilidad primario publicado por el autor del componente COM que va a incorporar en el código administrado. Los tipos del ensamblado de interoperabilidad primario ya se han importado y están listos para activarlos y llamarlos desde el código administrado. Para obtener información sobre cómo crear y utilizar ensamblados de interoperabilidad primarios, vea Ensamblados de interoperabilidad primarios.

En este tema se describen las técnicas para generar metadatos a partir de una biblioteca de tipos. Al ensamblado resultante se le denomina ensamblado de interoperabilidad.

Generar metadatos

Las bibliotecas de tipos COM pueden ser archivos TLB independientes, como Loanlib.tlb. Algunas bibliotecas de tipos están incrustadas en la sección de recursos de un archivo DLL o EXE. Otros orígenes de información de bibliotecas de tipos son los archivos OLB y OCX.

Una vez que se localice la biblioteca de tipos que contiene la implementación del tipo COM de destino, puede elegir una de las siguientes opciones para generar un ensamblado que contenga metadatos de tipos.

  • Visual Studio 2005

    Visual Studio 2005 convierte automáticamente los tipos COM de una biblioteca de tipos en metadatos de un ensamblado. Para obtener instrucciones, vea Cómo: Agregar referencias a bibliotecas de tipos.

  • Importador de la biblioteca de tipos (TlbImp.exe)

    El Importador de la biblioteca de tipos proporciona opciones de línea de comandos para ajustar los metadatos del archivo de ensamblado resultante, importa tipos de una biblioteca de tipos existente y genera un ensamblado y un espacio de nombres. Para obtener instrucciones, vea Cómo: Generar ensamblados de interoperabilidad a partir de bibliotecas de tipos.

  • Clase TypeLibConverter

    La clase TypeLibConverter (del espacio de nombres System.Runtime.InteropServices) proporciona métodos para convertir las coclases e interfaces de una biblioteca de tipos en metadatos dentro de un ensamblado. Esta API produce el mismo resultado de metadatos que Tlbimp.exe. No obstante, a diferencia de Tlbimp.exe, la clase TypeLibConverter puede convertir en metadatos una biblioteca de tipos almacenada en memoria.

  • Contenedores personalizados

    Si una biblioteca de tipos no está disponible o no es válida, tiene la opción de crear una definición duplicada de la clase o interfaz en código fuente administrado. A continuación, puede compilar el código fuente con un compilador orientado a Common Language Runtime para generar metadatos en un ensamblado.

    Para definir tipos COM manualmente, necesita los siguientes elementos:

    • Descripciones precisas de las coclases e interfaces que se van a definir.

    • Un compilador, como el compilador de C#, que pueda generar las definiciones de clase de .NET Framework adecuadas.

    • Conocimiento de las reglas de conversión de bibliotecas de tipos en ensamblados.

    La escritura de un contenedor personalizado es una técnica avanzada que se lleva a cabo en contadas ocasiones. Para obtener más información acerca de la forma de generar un contenedor personalizado, vea Personalizar contenedores estándar.

Para obtener información detallada sobre el proceso de importación de interoperabilidad COM, vea Resumen de la conversión de bibliotecas de tipos en ensamblados.

Vea también

Tareas

Cómo: Agregar referencias a bibliotecas de tipos

Cómo: Generar ensamblados de interoperabilidad a partir de bibliotecas de tipos

Conceptos

Exponer componentes COM en .NET Framework

Personalizar contenedores estándar

Utilizar tipos COM en código administrado

Compilar un proyecto de interoperabilidad

Implementar una aplicación interoperativa

Referencia

Importador de la biblioteca de tipos (TlbImp.exe)

TypeLibConverter

Otros recursos

Resumen de la conversión de bibliotecas de tipos en ensamblados