Partilhar via


Chamando métodos, propriedades e eventos

Um cliente .NET pode telefonar métodos em um objeto COM ativo, ajustar suas propriedades e capturar eventos originados no servidor.O empréstimo coclass (C++ não gerenciado, ATL) expõe métodos e propriedades que aparecem sistema autônomo exemplos de código nesta seção.

Chamando métodos

Chamar métodos em um objeto COM do código gerenciado é exatamente como chamar métodos em um objeto gerenciado.Porque os componentes COM sempre expõem funcionalidades por meio de interfaces, você pode chamar métodos na interface ou diretamente em coclass COM.Uma coclass expõe apenas os membros expostos por sua interface padrão.O código de exemplo a seguir chama o GetFirstPmtDistribution método diretamente no coclass importados:

MorePmts = ln.GetFirstPmtDistribution(ln.Payment, Balance, _
               Principal, Interest)
MorePmts = ln.GetFirstPmtDistribution(ln.Payment, out Balance, 
               out Principal, out Interest);

Interoperabilidade COM empacota os tipos de dados para você.Por exemplo, se você passar o tipo de sistema.String para um objeto COM, a interoperabilidade COM converte o tipo BSTR.

Parâmetros marcado sistema autônomo [out retval] em uma biblioteca de tipo converter em valores de retorno do método.O processo de conversão remove esses parâmetros do gerenciado assinatura.Por padrão, o tempo de execução lança uma exceção para código gerenciado, mapeando falha HRESULT para uma exceção gerenciada equivalente.

Obtendo e definindo propriedades

Interfaces COM podem incluir propriedades sistema autônomo membros de interface.Você pode obter ou conjunto uma propriedade exposta por um objeto COM a forma de obter e conjunto as propriedades expostas por uma gerenciado classe.Interfaces COM e coclasses importados sistema autônomo metadados em um assembly expor propriedades e métodos acessadores para cada propriedade.O exemplo de código a seguir define o OpeningBalance propriedade:

ln.OpeningBalance = Convert.ToDouble(Args(1))
ln.OpeningBalance = Convert.ToDouble(Args[0]);

Para obter detalhes de conversão de propriedade, consulte Conversão de membro importado.Para obter uma descrição mais geral de propriedades no .NET estrutura, consulte Visão geral de propriedades.

Tratamento de eventos

Um cliente .NET pode tratar eventos originados por um servidor COM a maneira como ele lida com qualquer Outros evento gerenciado.Quando você importa a biblioteca de tipos do servidor, o processo de conversão cria delegados que você se conectar ao seu evento manipuladores.Para obter detalhes sobre esse processo, consulte Manipulação de eventos gerados por uma fonte COM.

Observe que objetos COM que disparam eventos dentro de um cliente .NET requerem duas coleções coletor de lixo (GC) antes que eles são lançados.Isso é causado pelo ciclo de referência que ocorre entre objetos COM e clientes gerenciado.Se você precisar liberar explicitamente um objeto COM, você deve chamar o Collect método duas vezes.

Consulte também

Tarefas

Como: MAP HRESULTs and Exceptions

Conceitos

Usando tipos COM em código gerenciado

Conversão de membro importado

Visão geral sobre propriedades

Exemplo de interoperabilidade COM: Cliente .NET e o servidor COM

Outros recursos

marshaling de interoperabilidade