Compartilhar via


Descoberta de suplemento

Aplicativos de host podem descobrir os suplementos que estão disponíveis para eles. Descoberta consiste em duas tarefas:

  • Registrar informações sobre todos os suplementos e pipeline segmentos em arquivos de cache.

  • Localizando o add-ins para um modo de exibição do host especificado do add-in pesquisando o cache.

Dependendo do aplicativo, o host normalmente detecta o add-ins na inicialização, quando um documento é carregado, ou mediante solicitação do usuário. O AddInStore classe fornece métodos para executar essas tarefas.

Depois de você ter descoberto os add-ins, você pode ativá-las conforme descrito em Ativação de suplemento e Como: Ativar suplementos com níveis de segurança e isolamento de diferente.

Registrando o Add-ins e segmentos de Pipeline

Registrando envolve determinando suplementos válidos, verificando se os atributos de segmentos de tubulação e construir as informações sobre as tubulações. Para obter mais informações sobre como aplicar atributos para segmentos de pipeline e criando a estrutura do diretório de pipeline, consulte Requisitos de desenvolvimento de pipeline. A estrutura do diretório de pipeline pode conter os pipelines de um ou mais. Essas informações são armazenadas em cache em dois arquivos no diretório raiz de pipeline: PipelineSegments.store e AddIns.store.

Os métodos usados para registro de levar a uma variável de seqüência de caracteres que representa o caminho de raiz do pipeline, ou um valor a partir de PipelineStoreLocation enumeração. Eles criam novos arquivos de cache, se esses arquivos não foram criados anteriormente.

Os métodos reconstruir ou atualizar os arquivos de cache, como a tabela a seguir descreve.

Método de registro

Descrição

Rebuild

Recria o cache de segmentos do pipeline e inclui quaisquer novas adições.

Esse método também recria o cache de suplementos se suplementos estiverem dentro da estrutura do diretório de pipeline.

RebuildAddIns

Recria o cache de add-ins add-ins em um local especificado. Chame este método se seus suplementos estão fora da estrutura do diretório de pipeline.

Update

Atualiza o cache de segmentos de pipeline com quaisquer adições.

Esse método também atualiza o cache de suplementos se suplementos estiverem dentro da estrutura do diretório de pipeline.

Se não existem novos segmentos de pipeline ou add-ins, esse método simplesmente valida o cache.

UpdateAddIns

Atualiza o cache de add-in para qualquer novos add-ins em um local especificado. Chame este método se seus suplementos estão fora da estrutura do diretório de pipeline.

Se não houver nenhum novos suplementos instalados, esse método simplesmente valida o cache.

O Rebuild e Update sobrecargas do método utilizam como um parâmetro, um diretório raiz da estrutura do diretório de pipeline ou um valor a partir de PipelineStoreLocation enumeração.

Esses métodos usam o carregamento de reflexão para obter informações e não execute código do add-in ou do segmento de pipeline. Informações armazenadas em cache é hora para que ele não será recalculado durante as atualizações.

Arquivos de cache

O resultado de chamar os métodos de registro são os dois arquivos de cache:

  • PipelineSegments.store

    Este arquivo está localizado no diretório raiz da estrutura do diretório de pipeline.

  • AddIns.store

    Este arquivo está localizado no diretório que contém um ou mais subpastas add-in. Este diretório pode ser dentro da estrutura do diretório de pipeline, ou em outro local.

Localizando o Add-Ins

O FindAddIns método examina os arquivos de armazenamento para localizar todos os suplementos que correspondam a um modo de exibição do host especificado do add-in. O modo de exibição de host do add-in é a classe base abstrata ou uma interface que descreve os métodos usados pelo host e o suplemento, conforme especificado no contrato. Para localizar os arquivos de cache criados pelos métodos de registro, esse método usa como um parâmetro de um diretório raiz da estrutura do diretório de pipeline ou um valor a partir de PipelineStoreLocation enumeração.

Observação

Chame FindAddIns somente depois que você tiver certeza de que os arquivos do armazenamento são desenvolvidos e atualizados de modo que todos os suplementos disponíveis podem ser encontrados.

O FindAddIns método retorna um IList<T> a coleção de tokens que descrevem cada suplemento disponível que tem um pipeline válido. Cada token é descrito pela AddInToken classe.

Cada token possui as seguintes informações sobre um suplemento, que é obtida a partir de AddInAttribute atributo de classe do suplemento:

  • Nome

  • Descrição

  • Publisher

  • Versão

Na maioria dos casos, existe apenas um token no IList<T> coleção. Se houver mais de um token, o aplicativo host pode usar essas informações para ajudar o usuário a selecionar o add-in para ativar. Para obter mais informações sobre a ativação, consulte Ativação de suplemento.

Para encontrar suplementos fora da estrutura do diretório de pipeline, você deve incluir o AddInPaths parâmetro. Como este parâmetro é uma matriz de seqüências de caracteres, você pode especificar vários locais.

Você também pode encontrar um suplemento específico com o FindAddIn método que retorna uma coleção de um token.

Exemplo

O exemplo a seguir mostra como criar os arquivos de cache e localizar suplementos.

' Get the path for the pipeline root.  
' Assumes that the current directory is the
' pipline directory structure root directory.
Dim pipeRoot As String = Environment.CurrentDirectory
' Update the cache files of the
' pipeline segments and add-ins.
Dim warnings() As String = AddInStore.Update(pipeRoot)
For Each warning As String In warnings
    Console.WriteLine(warning)
Next

' Search for add-ins of type Calculator (the host view of the add-in)
' specifying the host's application base, instead of a path,
' for the FindAddIns method.
Dim tokens As Collection(Of AddInToken) = _
    AddInStore.FindAddIns(GetType(Calculator), PipelineStoreLocation.ApplicationBase)
// Get path for the pipeline root.
// Assumes that the current directory is the  
// pipeline directory structure root directory. 
String pipeRoot = Environment.CurrentDirectory;

// Update the cache files of the
// pipeline segments and add-ins.
string[] warnings = AddInStore.Update(pipeRoot);

foreach (string warning in warnings)
{
    Console.WriteLine(warning);
}

// Search for add-ins of type Calculator (the host view of the add-in)
// specifying the host's application base, instead of a path,
// for the FindAddIns method.

Collection<AddInToken> tokens = 
            AddInStore.FindAddIns(typeof(Calculator),PipelineStoreLocation.ApplicationBase);

Consulte também

Conceitos

Add-ins e extensibilidade

Ativação de suplemento

Requisitos de desenvolvimento de pipeline

Contratos, exibições e adaptadores