Partilhar via


Ativação de suplemento

Depois de utilizado os métodos de detecção 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 utilizando seu token, o que é representado por um AddInToken objeto. Para obter mais informações sobre como descobrir suplementos que estão disponível no seu sistema, consulte Descoberta de suplemento.

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

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

  • O segurança de confiança nível ou conjunto de permissões concedido ao domínio do aplicativo é criado para o suplemento.

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

The Activate método retorna o modo de exibição de host do suplemento; o aplicativo host pode chamar métodos sistema autônomo 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 é referenciado.

Ativação

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

Como o suplemento está no seu próprio domínio do aplicativo, pode testá-lo no seu próprio ambiente e também testar seu lado do pipeline.O adaptador suplementar, contrato e exibição de suplemento pipeline segmentos são carregados para o mesmo domínio do aplicativo sistema autônomo o suplemento.Todos os outros assemblies necessários para o suplemento também são carregados para domínio do aplicativo do suplemento.

Ao ativar add-ins, aplicativo host normalmente usa o Activate sobrecarga de método que usa um nível de segurança especificado e que automaticamente cria um domínio do aplicativo para o suplemento. Você pode especificar um AddInSecurityLevel ou um 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 do aplicativo para ser addinassemblyname.config, se houver arquivo de configuração.

Para exercer um melhor controle ou aos suplementos de pool, você pode usar sobrecargas do Activate método para especificar um domínio do aplicativo existente para carregar suplementos. Se você especificar um domínio do aplicativo existente, você pode compartilhar com com facilidade informações de cultura, contextos de segurança e recursos com outros suplementos.

Você deve considerar o contexto de segurança que será aplicado ao domínio do 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 do 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 no domínio do aplicativo.As permissões disponível para essas zonas de segurança dependem das configurações de segurança existentes do .NET estrutura.

Se desejar usar permissões para uma zona de segurança, você pode usar sobrecargas do Activate método para fornecer seu próprio PermissionSet objeto.

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

Suplemento do controle de tempo de vida

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

  • Desligue o suplemento.

  • Obter domínio do aplicativo do suplemento.

  • Obter um token do suplemento para ativação futura.

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

Use o GetAddInController método para obter o controlador para um suplemento especificado.

The Shutdown método manipula os detalhes necessários para desligar um suplemento. Eles incluem saber em que o suplemento é carregado, seu domínio do aplicativo e possivelmente os processos externos que o suplemento está sendo executado no.Se o domínio do aplicativo foi criado automaticamente, esse método descarrega esse domínio do aplicativo.Se o suplemento foi ativado em um domínio do aplicativo especificado, o serviço de time de vida no objeto contrato remoto irá expirar, deixará o domínio do aplicativo carregado.Quando o objeto de contrato é descartado, o suplemento estará disponível para ser recuperados pela coleta de lixo.

Exemplo

O exemplo seguinte ativa um suplemento com um nível de segurança especificado em um domínio do 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 isolamento diferente e níveis de segurança

Conceitos

Descoberta de suplemento

Gerenciamento de tempo de vida

Contratos, exibições e adaptadores

Outros recursos

Suplementos e extensibilidade