Simulando Interfaces de COM
O COM callable wrapper (CCW) expõe todos os pública, visível para COM interfaces, tipos de dados e valores de retorno para os clientes COM de maneira que seja consistente com a imposição de interação baseada em interface COM. Para um cliente COM a invocação de métodos em um.Objeto do NET Framework é idêntico ao invocar métodos em um objeto COM.
Para criar essa abordagem perfeita, o CCW fabrica interfaces COM tradicionais, como IUnknown e IDispatch. Como mostra a ilustração a seguir, o CCW mantém uma única referência sobre o.NET object quebra de linha. O cliente COM e.NET object interagem entre si por meio do proxy e stub construída a CCW.
Invólucro e interfaces com
Para além de expor as interfaces que são implementadas explicitamente por uma classe no ambiente gerenciado, o.NET Framework fornece implementações das interfaces COM listados na tabela a seguir no nome do objeto. A.NET classe pode substituir o comportamento padrão fornecendo sua própria implementação dessas interfaces. No entanto, o runtime sempre fornece a implementação para o IUnknown e IDispatch interfaces.
Interface |
Descrição |
---|---|
IDispatch |
Fornece um mecanismo de ligação tardia digitar. |
IerrorInfo |
Fornece uma descrição textual do erro, sua origem, um arquivo de Ajuda, contexto de ajuda e o GUID da interface que definiu o erro (sempre GUID_NULL para.Classes de rede). |
IprovideClassInfo |
Permite que os clientes acessar COM o ITypeInfo interface implementada por uma classe gerenciada. |
IsupportErrorInfo |
Permite que um cliente COM determinar se o objeto gerenciado suporta a IErrorInfo interface. Em caso afirmativo, permite que o cliente obter um ponteiro para o objeto de exceção mais recente. Todos os tipos de suporte de gerenciados a IErrorInfo interface. |
ItypeInfo |
Fornece informações de tipo para uma classe que é exatamente o mesmo que o tipo de informação produzido pela Tlbexp. exe. |
IUnknown |
Fornece a implementação padrão de IUnknown interface com a qual o cliente COM gerencia a vida útil do CCW e fornece a coerção de tipo. |
Uma classe gerenciada também pode fornecer as interfaces COM descrito na tabela a seguir.
Interface |
Descrição |
---|---|
A (_classname) interface de classe |
Interface, exposto pelo tempo de execução e não explicitamente definido, que expõe todas as interfaces públicas, métodos, propriedades e campos que são expostos explicitamente em um objeto gerenciado. |
IConnectionPoint e IconnectionPointContainer |
Interface para objetos de fonte de eventos baseadas em delegados (uma interface para o registro de assinantes de eventos). |
IdispatchEx |
Interface fornecida pelo tempo de execução se a classe implementa IExpando. O IDispatchEx interface é uma extensão da IDispatch interface que, ao contrário de IDispatch, permite a enumeração, adição, exclusão e diferencia maiúsculas de minúsculas chamada de membros. |
IEnumVARIANT |
Interface para classes de tipo de coleção que enumera os objetos na coleção se a classe implementa IEnumerable. |