Wrappers COM

COM difere do.Modelo de objeto do NET Framework de diversas maneiras importantes:

  • Clientes de objetos COM devem gerenciar o tempo de vida desses objetos; o common language runtime gerencia o tempo de vida dos objetos em seu ambiente.

  • Clientes de objetos COM descubram se um serviço está disponível, solicitando uma interface que fornece serviço e voltando de um ponteiro de interface ou não. Clientes do.NET objetos podem obter uma descrição da funcionalidade de um objeto usando reflexão.

  • NET objetos residem na memória gerenciada pelo.Ambiente de execução do NET Framework. O ambiente de execução pode mover objetos na memória por motivos de desempenho e atualizar todas as referências aos objetos que se move. Os clientes não gerenciados, tendo obtido um ponteiro para um objeto, contam com o objeto permanecer no mesmo local. Esses clientes não ter nenhum mecanismo para lidar com um objeto cuja localização não é fixo.

Para superar essas diferenças, o runtime fornece classes de wrapper para fazer com que os clientes gerenciados e não gerenciados acha que eles estão chamando objetos dentro de seus respectivos ambientes. Sempre que o cliente gerenciado chama um método em um objeto COM, o runtime cria um runtime callable wrapper (RCW). RCWs abstraem as diferenças entre os mecanismos de referência gerenciada e, entre outras coisas. O runtime também cria um COM callable wrapper (CCW) para reverter o processo, permitindo um cliente COM perfeitamente chamar um método em um.NET object. Como mostra a ilustração a seguir, a perspectiva do código chamador determina qual classe de wrapper, o runtime cria.

Visão geral de wrapper COM

Visão geral de wrapper COM

Na maioria dos casos, o RCW padrão ou um CCW geradas pelo runtime fornece o empacotamento adequado para chamadas cruzam o limite entre COM e o.NET Framework. Usando atributos personalizados, você pode ajustar a maneira como o runtime representa o código gerenciado e opcionalmente.

Consulte também

Tarefas

Como: Personalizar Wrappers invocáveis em tempo de execução

Conceitos

Runtime Callable Wrapper

COM Callable Wrapper

Personalizando Wrappers padrão

Outros recursos

Interoperabilidade de COM avançadas