Sviluppo pipelinePipeline Development

La pipeline del componente aggiuntivo è il percorso di segmenti della pipeline che l'applicazione host e il componente aggiuntivo deve utilizzare per comunicare tra loro.The add-in pipeline is the path of pipeline segments that the host application and its add-in must use to communicate with each other.

Nella figura seguente mostra la pipeline di comunicazione e i segmenti.The following illustration shows the communication pipeline and its segments.

Aggiungere-nel modello di pipeline. Add-in pipeline model.
Pipeline del componente aggiuntivoAdd-in pipeline

L'applicazione host è un'estremità della pipeline e il componente aggiuntivo è a altra estremità.The host application is at one end of the pipeline and the add-in is at the other end. A partire da ogni entità finale e spostamento verso il centro, l'applicazione host e il componente aggiuntivo dispone di una classe base astratta che definisce una vista del modello a oggetti che sono gli stessi.Starting from each end and moving toward the middle, both the host application and the add-in have an abstract base class that defines a view of the object model that they both share. Questi tipi (classi) costituiscono il segmento della pipeline di visualizzazione e la visualizzazione host del segmento di pipeline del componente aggiuntivo.These types (classes) make up the add-in view pipeline segment and the host view of the add-in pipeline segment. Il segmento di visualizzazione del componente della pipeline spesso contiene più di una classe astratta, ma la classe da cui il componente aggiuntivo eredita è noto come base per il componente aggiuntivo.The add-in view pipeline segment often contains more than one abstract class but the class that the add-in inherits from is known as the add-in base.

Il segmento della pipeline sul lato componente-scheda e la conversione di segmento della pipeline di adattatore sul lato host al flusso di tipi tra i segmenti della pipeline di visualizzazione e il segmento della pipeline del contratto.The add-in-side adapter pipeline segment and the host-side adapter pipeline segment convert the flow of types between their view pipeline segments and the contract pipeline segment. Il segmento centrale della pipeline è un contratto derivato dal IContract interfaccia.The central segment of the pipeline is a contract that is derived from the IContract interface. Questo contratto definisce i metodi che l'applicazione host e il componente aggiuntivo sia utilizzerà.This contract defines the methods that the host application and its add-in will both use.

Se si caricano l'host e il componente aggiuntivo in domini applicazione separati, è necessario un limite di isolamento che separa l'ambito dell'applicazione host dall'ambito del componente aggiuntivo.If you load the host and the add-in into separate application domains, you have an isolation boundary that separates the scope of the host application from the scope of the add-in. Il contratto è il solo assembly caricati in host e i domini applicazione.The contract is the only assembly that is loaded in both the host and add-in application domains. L'host e il componente aggiuntivo ogni fare riferimento solo alla visualizzazione dei metodi del contratto.The host and the add-in each refer only to their view of the contract methods. Di conseguenza, saranno separati da un livello di astrazione dal contratto.Therefore, they are separated by a layer of abstraction from the contract.

Per lo sviluppo di segmenti della pipeline, è necessario creare una struttura di directory che li contengono.To develop pipeline segments, you must create a directory structure that will contain them. Per ulteriori informazioni sui requisiti di sviluppo e linee guida di ambito, vedere requisiti di sviluppo Pipeline.For more information about development requirements and scope guidelines, see Pipeline Development Requirements.

Nella figura seguente mostra i tipi che costituiscono i segmenti della pipeline.The following illustration shows the types that make up the pipeline segments. I nomi dei tipi illustrati nella figura sono arbitrari, ma tutti i tipi, ad eccezione dell'host e l'host consente di visualizzare gli attributi aggiuntivo richiesto in modo che possano essere individuate dai metodi che costruiscono un archivio di informazioni.The names of the types shown in the illustration are arbitrary, but all types except for the host and the host view of the add-in require attributes so they can be discovered by methods that construct an information store.

Aggiungere-nel modello con gli attributi obbligatori per i tipi. Add-in model with required attributes on types.
Pipeline del componente aggiuntivo con tipiAdd-in pipeline with types

Nella tabella seguente vengono descritti i segmenti di pipeline per l'attivazione di un componente aggiuntivo.The following table describes the pipeline segments for activating an add-in. Per ulteriori informazioni su questi segmenti, vedere contratti, visualizzazioni e adattatori.For more information about these segments, see Contracts, Views, and Adapters.

Segmento della pipelinePipeline segment DescrizioneDescription
HostHost Assembly dell'applicazione che crea un'istanza di un componente aggiuntivo.The application assembly that creates an instance of an add-in.
Visualizzazione host del componente aggiuntivoHost view of the add-in Rappresenta la visualizzazione dell'applicazione host di tipi di oggetti e metodi utilizzati per comunicare con il componente aggiuntivo.Represents the host application's view of the object types and methods used to communicate with the add-in. La visualizzazione host è un'interfaccia o classe base astratta.The host view is an abstract base class or interface.
Adattatore sul lato hostHost-side adapter Un assembly con una o più classi che adatta i metodi da e verso il contratto.An assembly with one or more classes that adapts methods to and from the contract.

Il segmento della pipeline viene identificato tramite il HostAdapterAttribute attributo.This pipeline segment is identified by using the HostAdapterAttribute attribute.

Gli assembly con più moduli non sono supportati.Multi-module assemblies are not supported.
ContrattoContract Un'interfaccia derivata dal IContract interfaccia che definisce il protocollo per la comunicazione dei tipi tra l'host e il componente aggiuntivo.An interface that is derived from the IContract interface and that defines the protocol for communicating types between the host and its add-in.

Questo segmento della pipeline viene identificato tramite l'impostazione di AddInContractAttribute attributo.This pipeline segment is identified by setting the AddInContractAttribute attribute.
Sul lato componente-schedaAdd-in-side adapter Un assembly con una o più classi che adatta i metodi da e verso il contratto.An assembly with one or more classes that adapts methods to and from the contract.

Il segmento della pipeline viene identificato tramite il AddInAdapterAttribute attributo.This pipeline segment is identified by using the AddInAdapterAttribute attribute.

Ogni assembly nella directory sul lato componente-scheda che contiene un tipo che ha un AddInAdapterAttribute attributo verrà caricato nel dominio dell'applicazione del componente aggiuntivo.Each assembly in the add-in-side adapter directory that contains a type that has an AddInAdapterAttribute attribute is loaded into the add-in's application domain.

Ogni assembly nella directory lato del componente aggiuntivo viene caricato nel dominio applicazione.Each assembly in the add-in-side directory is loaded in its own application domain.

Gli assembly con più moduli non sono supportati.Multi-module assemblies are not supported
Visualizzazione del componente aggiuntivoAdd-in view Un assembly che rappresenta la vista del componente aggiuntivo di tipi di oggetti e metodi utilizzati per comunicare con l'host.An assembly that represents the add-in's view of the object types and methods that are used to communicate with the host. La visualizzazione di un componente aggiuntivo è un'interfaccia o classe base astratta.The add-in view is an abstract base class or interface.

Il segmento della pipeline viene identificato tramite il AddInBaseAttribute attributo.This pipeline segment is identified by using the AddInBaseAttribute attribute.

Ogni assembly nella directory AddInViews che contiene un tipo che ha un AddInBaseAttribute attributo verrà caricato nel dominio dell'applicazione del componente aggiuntivo.Each assembly in the AddInViews directory that contains a type that has an AddInBaseAttribute attribute is loaded into the add-in's application domain.
Componente aggiuntivoAdd-in Un tipo di istanze che esegue un servizio per l'host.An instantiated type that performs a service for the host.

Percorso di attivazione della pipelinePipeline Activation Path

Nella figura seguente mostra l'attivazione dei tipi quando viene attivato un componente aggiuntivo.The following illustration shows the activation of types when an add-in is activated. Viene illustrato il passaggio di oggetti all'host, ad esempio i risultati di un calcolo o una raccolta di oggetti.It also shows the passing of objects to the host, such as the results of a calculation or a collection of objects. Questo è lo scenario più comune.This is the most typical scenario.

Aggiungere-nel modello con percorso di attivazione. Add-in model with activation path.
Percorso di attivazione dal componente aggiuntivo all'hostActivation path from the add-in to the host

Il percorso di attivazione della pipeline avviene nel modo seguente:The activation path of the pipeline occurs as follows:

  1. L'applicazione host attiva il componente aggiuntivo con il Activate metodo.The host application activates the add-in with the Activate method.

  2. La vista del componente aggiuntivo, componenti sul lato componente-scheda e gli assembly del contratto vengono caricati nel dominio di applicazione del componente aggiuntivo.The add-in, add-in view, add-in-side adapter, and the contract assemblies are loaded into the add-in's application domain.

  3. Viene creata un'istanza dell'adattatore di lato del componente aggiuntivo utilizzando la vista del componente aggiuntivo (con la classe identificata dal AddInBaseAttribute attributo) come costruttore.An instance of the add-in-side adapter is created using the add-in view (with the class identified by the AddInBaseAttribute attribute) as its constructor. L'adapter sul lato componente-eredita dal contratto.The add-in-side adapter inherits from the contract.

  4. L'adapter lato del componente aggiuntivo, tipizzato come contratto, viene passato attraverso il limite di isolamento (facoltativo) al costruttore dell'adattatore sul lato host.The add-in-side adapter, which is typed as the contract, is passed across the (optional) isolation boundary to the host-side adapter's constructor.

  5. La visualizzazione host della scheda componenti sul lato host e gli assembly del contratto vengono caricati nel dominio applicazione dell'host.The host view of the add-in, host-side adapter, and the contract assemblies are loaded into the host's application domain.

  6. Viene creata un'istanza dell'adattatore sul lato host utilizzando il contratto come costruttore.An instance of the host-side adapter is created using the contract as its constructor. Adattatore sul lato host eredita dalla visualizzazione host del componente aggiuntivo.The host-side adapter inherits from the host view of the add-in.

  7. L'host è il componente aggiuntivo, tipizzato come l'host del componente aggiuntivo consente di visualizzare e può continuare a chiamare i metodi.The host has the add-in, which is typed as the host view of the add-in, and can continue calling its methods.

Procedure dettagliateWalkthroughs

Esistono tre argomenti di questa procedura dettagliata viene descritto come creare pipeline utilizzando Visual Studio:There are three walkthrough topics that describe how to create pipelines using Visual Studio:

Vedere ancheSee Also

Componente aggiuntivo per gli scenari di PipelineAdd-in Pipeline Scenarios
Componenti aggiuntivi ed estendibilitàAdd-ins and Extensibility