tempo de execução Callable Wrapper
O common linguagem tempo de execução expõe objetos COM por meio de um proxy chamado tempo de execução callable wrapper (RCW).Embora o RCW parece ser um objeto comum para clientes .NET, sua principal função é realizar realizar marshaling chamadas entre um cliente .NET e um objeto COM.
O tempo de execução cria exatamente um RCW para cada objeto COM, independentemente do número de referências de que existe no objeto.O tempo de execução mantém um RCW único por processo para cada objeto.Se você criar um RCW em um domínio do aplicativo ou apartment e, em seguida, passar uma referência a outro domínio do aplicativo ou apartment, um proxy para o primeiro objeto será usado.sistema autônomo mostra a ilustração a seguir, qualquer número de clientes gerenciado pode conter uma referência a objetos COM que expõem interfaces INew e INewer.
Acessando objetos COM através de tempo de execução callable wrapper
O tempo de execução usando metadados derivados de uma biblioteca de tipos, cria o objeto COM que está sendo chamada 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 o RCW coleta de lixo.
Entre outras atividades, os dados de empacota RCW entre gerenciados e código não gerenciado, em nome do objeto empacotado.Especificamente, o RCW fornece marshaling para argumentos de método e valores de retorno do método sempre que o cliente e o servidor têm diversas representações dos dados transmitidos entre eles.
O wrapper padrão impõe regras internas de marshaling.Por exemplo, quando um cliente .NET passa um tipo de string sistema autônomo 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 um BSTR a seu chamador gerenciado, o chamador recebe um String.O cliente e o servidor envie e recebem dados que estão familiarizados.Outros tipos requerem sem conversão.Gerenciados por instância, um será wrapper padrão sempre passar um inteiro de 4 byte entre e código não gerenciado sem converter o tipo.
Consulte também
Conceitos
marshaling de interfaces selecionadas
Importando uma biblioteca de tipos sistema autônomo um assembly