Partilhar via


Ativação de suplemento

Depois que você tenha usado os métodos de descoberta e obteve uma coleção de tokens de add-in para um modo de exibição do host especificado, você pode ativar um suplemento da coleção usando seu token, que é representado por um AddInToken objeto. Para obter mais informações sobre como descobrir os suplementos que estão disponíveis no seu sistema, consulte Descoberta de suplemento.

Quando você usa o Activate sobrecargas do método em um AddInToken o objeto, você pode especificar as seguintes opções de ativação:

  • O domínio de aplicativo que o suplemento é carregado no.

  • O segurança permissão ou nível de conjunto de confiança que é concedido para o domínio de aplicativo é criado para o suplemento.

  • O processo externo no qual ativar o add-in. Essa é uma opção de desenvolvimento avançado de suplemento.

O Activate método retorna o modo de exibição de host do add-in; o aplicativo host pode então chamar métodos, conforme definido no contrato. O aplicativo host pode controlar a vida útil do suplemento desligá-lo com o AddInController classe. Ele também pode permitir que o coletor de lixo recuperar o suplemento quando ele não é mais consultado.

Ativação

Normalmente, os aplicativos de host mantém o host e o suplemento executando em domínios de aplicativo separado, com um domínio do aplicativo por suplemento. Isso permite que os suplementos operar em contextos isolados de tanto o host e de outros suplementos. Esse isolamento evita conflitos e permite o controle de versão de suplementos.

Como o suplemento está em seu próprio domínio de aplicativo, você pode testá-lo em seu próprio ambiente e também testar seu lado do pipeline. O adaptador suplementar, o contrato e segmentos de tubulação de add-in visualização são carregados no mesmo domínio de aplicativo, como o suplemento. Quaisquer outros assemblies exigidos pelo suplemento também são carregados no domínio de aplicativo do suplemento.

Ao ativar um add-ins, o aplicativo host normalmente usa o Activate a sobrecarga de método que leva a um nível de segurança especificados e que automaticamente cria um domínio de aplicativo do add-in. Você pode especificar um AddInSecurityLevel ou PermissionSet para o nível de segurança. Quando o Activate método cria um domínio de aplicativo para o suplemento, ele define o arquivo de configuração do domínio de aplicativo para ser addinassemblyname.config, se o arquivo de configuração existe.

Para obter um controle ou suplementos do pool, você pode usar sobrecargas da AddInToken.Activate método para especificar um domínio de aplicativo existente para carregamento add-ins. Se você especificar um domínio de aplicativo existente, você pode facilmente compartilhar informações de cultura, contextos de segurança e recursos com outros suplementos.

Você deve considerar o contexto de segurança será aplicado ao domínio de aplicativo do suplemento. Por exemplo, um aplicativo host pode estar sendo executado em confiança total, mas talvez precise executar suplementos com menos permissões. Você pode usar sobrecargas da Activate método para especificar uma zona de segurança com o AddInSecurityLevel enumeração. Essas zonas de segurança incluem FullTrust, Host, Intranet, ou Internet. As permissões apropriadas para a zona de segurança são aplicadas ao código que está sendo executado em um domínio do aplicativo. As permissões disponíveis para essas zonas de segurança dependem existentes.Configurações de segurança do NET Framework.

Se você não deseja usar permissões para uma zona de segurança, você pode usar sobrecargas da Activate método para fornecer sua própria PermissionSet objeto.

Você pode usar sobrecargas da Activate método para criar um processo externo para o suplemento ou anexar o add-in para um processo externo existente, que foi criado para o host add-ins. Essas sobrecargas usam o AddInProcess e AddInEnvironment classes. Para obter mais informações sobre como ativar add-ins em um processo externo, consulte Como: Ativar suplementos com níveis de segurança e isolamento de diferente.

Suplemento de controle de tempo de vida

O AddInController classe fornece métodos para as seguintes tarefas de suplemento:

  • Desligue o add-in.

  • Obtenha domínio de aplicativo do add-in.

  • Obter um token do add-in para ativação futura.

  • Obtenha um AddInEnvironment o objeto para uso com a ativação de processo externo.

Use o GetAddInController método para obter o controlador para um especificado add-in.

O Shutdown método manipula os detalhes necessários para desligar um add-in. Esses incluem saber onde o suplemento é carregado, seu domínio de aplicativo e possivelmente os processos externos, add-in é executado. Se o domínio do aplicativo foi criado automaticamente, esse método descarrega o domínio do aplicativo. Se o suplemento foi ativado em um domínio do aplicativo especificado, o serviço de tempo de vida do objeto remoto contrato será a hora de saída, o que deixa o domínio de aplicativo carregado. Quando o objeto do contrato é descartado, o suplemento estará disponível para ser recuperados pela coleta de lixo.

Exemplo

O exemplo a seguir ativa um add-in com um nível de segurança especificados em um domínio de aplicativo criados automaticamente.

'Ask the user which add-in they would like to use.
Dim selectedToken As AddInToken = ChooseAddIn(tokens)
'Activate the selected AddInToken in a new
'application domain with the Internet trust level.
Dim CalcAddIn As Calculator = selectedToken.Activate(Of Calculator)(AddInSecurityLevel.Internet)
'Run the add-in using a custom method.
RunCalculator(CalcAddIn)
//Ask the user which add-in they would like to use.
AddInToken selectedToken = ChooseAddIn(tokens);

//Activate the selected AddInToken in a new
//application domain with the Internet trust level.
Calculator CalcAddIn = selectedToken.Activate<Calculator>(AddInSecurityLevel.Internet);

//Run the add-in using a custom method.
RunCalculator(CalcAddIn);

Consulte também

Tarefas

Como: Ativar suplementos com níveis de segurança e isolamento de diferente

Conceitos

Add-ins e extensibilidade

Descoberta de suplemento

Gerenciamento da vida útil

Contratos, exibições e adaptadores