Compartilhar via


A importação de uma biblioteca de tipos como um Assembly.

Definições de tipo COM geralmente residem em uma biblioteca de tipos. Em contraste, os compiladores compatíveis com CLS produzem metadados de tipo em um assembly. As duas fontes de informações de tipo são bastante diferentes. Este tópico descreve técnicas para a geração de metadados de uma biblioteca de tipos. O assembly resultante é chamado de um assembly de interoperabilidade e o tipo de informação que permite que ele contém.NET Framework a usar os tipos COM.

Há duas maneiras de tornar essas informações de tipo disponíveis para seu aplicativo:

  • Usando somente para a hora do design assemblies de interoperabilidade: Começando com o .NET Framework versão 4, você pode instruir o compilador para incorporar informações de tipo no assembly de interoperabilidade no executável. O compilador incorpora as informações de tipo que o aplicativo usa. Não é necessário implantar o assembly de interoperabilidade com o seu aplicativo. Esta é a técnica recomendada.

  • Implantar assemblies de interoperabilidade: Você pode criar uma referência padrão para o assembly de interoperabilidade. Nesse caso, o assembly de interoperabilidade deve ser implantado com o seu aplicativo. Se você empregar essa técnica, e você não estiver usando um componente particular, sempre deve fazer referência ao assembly de interoperabilidade primário (PIA) publicado pelo autor do componente COM que você pretende incorporar no seu código gerenciado. Para obter mais informações sobre como produzir e usar assemblies de interoperabilidade primária, consulte Primary Interop Assemblies.

Quando você usar assemblies de interoperabilidade somente para a hora do design, você pode incorporar informações de tipo no assembly de interoperabilidade primária publicado pelo autor do componente COM. No entanto, não é necessário implantar o assembly de interoperabilidade primário com o seu aplicativo.

O uso de assemblies de interoperabilidade de design-time somente reduz o tamanho do seu aplicativo, porque a maioria dos aplicativos não usam todos os recursos de um componente COM. O compilador é muito eficiente quando ele incorpora informações de tipo; Se seu aplicativo usa apenas alguns dos métodos em uma interface COM, o compilador não incorporar os métodos não utilizados. Quando um aplicativo que incorporou a informações de tipo interage com o outro aplicativo desse tipo ou interage com um aplicativo que usa um assembly de interoperabilidade primária, as idioma em tempo de execução usa tipo equivalência regras comuns para determinar se dois tipos com o mesmo nome representam o mesmo tipo COM. Você não precisa saber essas regras para usar objetos COM. Entretanto, se você estiver interessado nas regras, consulte Digite a equivalência e tipos de interoperabilidade incorporados.

Geração de metadados

Bibliotecas de tipos COM podem ser arquivos autônomos que têm uma extensão. tlb, como, por exemplo, Loanlib.tlb. Algumas bibliotecas de tipo são incorporadas na seção de recursos de um arquivo. dll ou. exe. Outras fontes de informações da biblioteca de tipo são arquivos. olb e. ocx.

Após localizar a biblioteca de tipos que contém a implementação de seu tipo COM de destino, você tem as seguintes opções para gerar um assembly de interoperabilidade que contém metadados do tipo:

  • Visual Studio

    Visual Studio converte automaticamente os tipos COM uma biblioteca de tipos de metadados em um assembly. Para obter instruções, consulte como: Adicionar referências a bibliotecas de tipo e Demonstra Passo a passo: A incorporação de informações de tipo de Assemblies de Microsoft Office (C# e Visual Basic).

  • Type Library Importer (Tlbimp. exe)

    O importador da biblioteca fornece opções de linha de comando para ajustar os metadados do arquivo resultante de interoperabilidade, importa os tipos de uma biblioteca de tipos existentes e gera um assembly de interoperabilidade e um espaço para nome. Para obter instruções, consulte como: Gerar Assemblies de interoperabilidade de bibliotecas de tipo.

  • Classe System.Runtime.InteropServices.TypeLibConverter

    Essa classe fornece métodos para converter as interfaces em uma biblioteca de tipo e coclasses de metadados dentro de um assembly. Ela produz o mesmo resultado de metadados de Tlbimp. exe. No entanto, diferentemente Tlbimp. exe, o TypeLibConverter classe pode converter uma biblioteca de tipos de na memória para metadados.

  • Wrappers personalizados

    Quando uma biblioteca de tipos não está disponível ou incorreto, uma opção é criar uma definição duplicada da classe ou interface no código gerenciado. Você então compilar o código-fonte com um compilador que visa o runtime para produzir os metadados em um assembly.

    Para definir tipos COM manualmente, você deve ter acesso aos seguintes itens:

    • Precisas descrições das coclasses de e interfaces que está sendo definidos.

    • Um compilador, como, por exemplo, o compilador C#, que pode gerar o apropriado.Definições de classe do NET Framework.

    • Conhecimento das regras de conversão de assembly de biblioteca de tipo.

    Escrever um wrapper personalizado é uma técnica avançada. Para obter informações adicionais sobre como gerar um wrapper personalizado, consulte Personalizando Wrappers padrão.

Para obter mais informações sobre o processo de importação de interoperabilidade COM, consulte Biblioteca de tipos ao resumo de conversão de Assembly.

Consulte também

Tarefas

Como: Adicionar referências a bibliotecas de tipo

Como: Gerar Assemblies de interoperabilidade de bibliotecas de tipo

Demonstra Passo a passo: A incorporação de informações de tipo de Assemblies de Microsoft Office (C# e Visual Basic)

Referência

Tlbimp. exe (importador da biblioteca)

TypeLibConverter

Conceitos

Expondo componentes COM para o.NET Framework

Personalizando Wrappers padrão

Usando tipos COM em código gerenciado

Compilando um projeto de interoperabilidade

Implantar um aplicativo de interoperabilidade

Outros recursos

Biblioteca de tipos ao resumo de conversão de Assembly