Descoberta de suplemento
Aplicativos de host podem descobrir suplementos que estão disponível para eles.Detecção consiste em duas tarefas:
Registrar informações sobre todos os suplementos e pipeline segmentos em arquivos em cache.
Localizando suplemento s para um modo de exibição do host especificado o suplemento pesquisando o cache.
Dependendo do aplicativo, o host normalmente detecta suplementos na inicialização, quando um documento é carregado ou uma solicitação de usuário.The AddInStore classe fornece métodos para executar essas tarefas.
Após escolher sistema autônomo suplementos, você pode ativá-las conforme descrito em Ativação de suplemento e Como: Ativar suplementos com isolamento diferente e níveis de segurança.
Registrando os suplementos e segmentos de pipeline
Registrando envolve determinar suplementos válido verificando os atributos de segmentos de tubulação e construção de informações sobre as tubulações.Para obter mais informações sobre como aplicar atributos a pipeline segmentos e criando a estrutura de diretório do pipeline, consulte Requisitos de desenvolvimento de pipeline. A estrutura de diretório do pipeline pode conter um ou mais canais.Essas informações armazenadas em cache em dois arquivos no diretório raiz do pipeline: PipelineSegments.store e AddIns.store.
Os métodos usados para inscrição de levar a uma variável de seqüência que representa o caminho da raiz do pipeline, ou um valor do PipelineStoreLocation enumeração. Eles criar novos arquivos de cache, se esses arquivos não foram criados anteriormente.
sistema autônomo métodos recrie ou atualizar sistema autônomo arquivos de cache, conforme a tabela a seguir descreve.
Método de inscrição |
Descrição |
---|---|
Recria o cache de segmentos de tubulação e inclui as novas adições. Esse método também recria o cache de suplementos se suplementos estiverem dentro da estrutura de diretório do pipeline. |
|
Recria o cache de suplementos para suplementos em um local especificado.Chame esse método se seus suplementos estiver fora a estrutura de diretório do pipeline. |
|
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 de diretório do pipeline. Se não existem novos segmentos de tubulação ou suplementos, esse método simplesmente validará o cache. |
|
Atualiza o cache do suplemento de add-ins novos em um local especificado.Chame esse método se seus suplementos estiver fora a estrutura de diretório do pipeline. Se não houver nenhum novo suplemento instalado, esse método simplesmente valida o cache. |
The Rebuild e Update método sobrecargas levam sistema autônomo um parâmetro de um diretório raiz da estrutura do diretório pipeline ou um valor da PipelineStoreLocation enumeração.
Esses métodos usam carregamento somente de reflexão para obter informações e não execute código do suplemento ou código do segmento de pipeline.As informações armazenadas em cache é time para que ele não é recalculado durante as atualizações.
Arquivos de cache
O resultado de chamar os métodos de inscrição são dois arquivos de cache:
PipelineSegments.store
Esse arquivo está localizado no diretório raiz da estrutura de diretório do pipeline.
AddIns.store
Esse arquivo está localizado no diretório que contém um ou mais subpastas suplemento.Este diretório pode ser dentro da estrutura de diretório do pipeline ou em outro local.
Localizar suplementos
The FindAddIns método examina os arquivos de armazenamento para localizar todos os suplementos que correspondam a um especificado visão do complemento do host. A exibição do host do add-in é a classe base abstrata ou interface que descreve sistema autônomo métodos usados por host e o suplemento, conforme especificado no contrato.Para localizar sistema autônomo arquivos de cache criados pelo inscrição methods, este método usa sistema autônomo um parâmetro de um diretório raiz da estrutura do diretório pipeline ou um valor do PipelineStoreLocation enumeração.
Observação: |
---|
Call FindAddIns somente depois que tiver certeza de que os arquivos de armazenamento são desenvolvidos e atualizados de modo que todos os suplementos disponível podem ser encontrados. |
The FindAddIns método retorna um IList<T> coleção de tokens que descrevem cada suplemento disponível que tem um pipeline válido. Cada token é descrito pelo AddInToken classe.
Cada token tem as seguintes informações sobre um suplemento, que é obtida a partir de AddInAttribute atributo na classe do add-in:
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 selecionar o suplemento para ativar.Para obter mais informações sobre a ativação, consulte Ativação de suplemento.
Para encontrar suplementos fora a estrutura de diretório do pipeline, você deve incluir o AddInPaths parâmetro. Como esse 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 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)
If (warnings.Length > 0) Then
For Each warning As String In warnings
Console.WriteLine(warning)
Next
End If
' 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);
if (warnings.Length > 0)
{
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
Requisitos de desenvolvimento de pipeline
Contratos, exibições e adaptadores