Compartilhar via


Runtime Callable Wrapper

O common language runtime expõe os objetos COM através de um proxy chamado runtime callable wrapper (RCW). Embora o RCW parece ser um objeto comum.Clientes de rede, sua função principal é empacotar as chamadas entre um.Cliente de rede e um objeto COM.

O runtime cria RCW exatamente um para cada objeto COM, independentemente do número de referências que existem nesse objeto. O tempo de execução mantém um RCW único por processo para cada objeto. Se você cria um RCW em um domínio de aplicativo ou apartamento e em seguida passa uma referência a outro domínio de aplicativo ou apartamento, um proxy para o primeiro objeto será usado. Como mostra a ilustração a seguir, qualquer número de clientes gerenciados pode conter uma referência a objetos COM que expõem interfaces INew e INewer.

Acessar objetos COM o runtime callable wrapper

RCW

Usando metadados derivados de uma biblioteca de tipos, o runtime cria o objeto COM sendo chamado e um wrapper para o objeto. Cada RCW mantém um cache de ponteiros de interface no objeto COM ele encapsula e libera sua referência no objeto COM, quando o RCW não é mais necessária. O tempo de execução executa coleta de lixo o RCW.

Entre outras atividades, o RCW empacota dados entre código gerenciado e, em nome do objeto em contorno. Especificamente, o RCW fornece empacotamento para argumentos de método e valores de retorno do método, sempre que o cliente e o servidor ter representações diferentes dos dados transmitidos entre eles.

O wrapper padrão impõe regras internas de empacotamento. Por exemplo, quando um.NET cliente passa um tipo de seqüência de caracteres como parte de um argumento para um objeto não gerenciado, o wrapper converte a seqüência de caracteres em um tipo BSTR. O objeto COM deve retornar a um BSTR para seu chamador gerenciado, o chamador recebe uma seqüência de caracteres. O cliente e o servidor enviar e recebem dados que seja familiares para eles. Outros tipos não requerem nenhuma conversão. Por exemplo, um wrapper padrão sempre passar um inteiro de 4 bytes entre código gerenciado e sem converter o tipo.

Consulte também

Conceitos

Wrappers COM

Interfaces selecionadas de empacotamento.

COM Callable Wrapper

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

Outros recursos

Biblioteca de tipos ao resumo de conversão de Assembly