Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Quando um objeto é ativado em um determinado contexto, chamadas subsequentes de ou para ele, dentro do contexto, são tratadas de forma diferente das chamadas no limite de contexto. As chamadas no limite de contexto são tratadas com proxies leves. Esses proxies lidam com qualquer mediação necessária para ajustar o ambiente de tempo de execução de um que acomoda o chamador para um que acomode o destinatário. Esse processo é conhecido como de interceptação.
A interceptação de chamadas entre contextos é necessária porque objetos em contextos diferentes têm requisitos de tempo de execução diferentes. Esse é precisamente o motivo dos contextos. O COM+ intercepta todas as referências de objeto que você passa como parâmetros de método e as converte automaticamente em proxies para que sejam utilizáveis no novo contexto.
Se você compartilhar referências de objeto entre limites de contexto por outros meios, por exemplo, em variáveis globais, sempre deverá usar CoMarshalInterface e CoUnmarshalInterface. Essas funções podem converter uma referência de objeto em um proxy utilizável em um contexto diferente. Nunca compartilhe uma referência de objeto bruto entre limites de contexto.
O comportamento de chamadas em todo o contexto pode ter consequências indesejadas no caso de objetos que expõem interfaces que não podem ser marshaladas. Nesta circunstância, é provável que você queira insistir que o objeto que não pode ser empacotado seja ativado apenas no contexto de seu chamador e nunca em seu próprio contexto. Você pode fazer isso selecionando o Deve ser ativado na opção de de contexto do chamador na guia de Ativação da página propriedades do componente. (Consulte Impondo a Ativação no de Contexto do Chamador para obter instruções passo a passo.)
Tópicos relacionados