Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese
Informazioni
L'argomento richiesto è visualizzato di seguito, ma non è incluso in questa libreria.

Procedura: attivare componenti aggiuntivi con isolamento e sicurezza diversi

È possibile attivare un componente aggiuntivo utilizzando configurazioni del processo e del dominio applicazione diverse per soddisfare requisiti di isolamento e sicurezza specifici. Gli overload del metodo Activate della classe AddInToken consentono di scegliere tra le opzioni seguenti per l'attivazione di un componente aggiuntivo:

  • Nel dominio applicazione generato automaticamente dal sistema.

  • In un dominio applicazione esistente, con o senza altri componenti aggiuntivi.

  • Nello stesso ambiente (dominio e processo dell'applicazione) come un altro componente aggiuntivo.

  • In un nuovo processo esterno separato dal processo dell'host. Il nuovo processo può includere altri componenti aggiuntivi che condividono il processo.

Quando si attiva un componente aggiuntivo in un nuovo dominio o un processo dell'applicazione, è necessario specificare un livello di sicurezza utilizzando un oggetto AddInSecurityLevel o PermissionSet. Per ulteriori informazioni sull'attivazione di componenti aggiuntivi, vedere Attivazione di componenti aggiuntivi.

Nelle procedure seguenti viene descritto come implementare queste opzioni di attivazione utilizzando gli overload del metodo Activate. In questi esempi si presuppone che le cache del segmento di pipeline e del componente aggiuntivo siano state compilate e che uno o più componenti aggiuntivi siano stati individuati e restituiti in una raccolta AddInToken denominata tokens. Per ulteriori informazioni su come compilare i file di cache e individuare i componenti aggiuntivi, vedere Individuazione di componenti aggiuntivi.

Per attivare un componente aggiuntivo in un nuovo dominio applicazione

  • Utilizzare l'overload del metodo Activate<T>(AddInSecurityLevel) o del metodo Activate<T>(PermissionSet).

    
    //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);
    
    
    

Per attivare un componente aggiuntivo nello stesso dominio applicazione come un altro componente aggiuntivo

  • Utilizzare l'overload del metodo Activate<T>(AppDomain).

    
    // Get the application domain
    // of an existing add-in (CalcAddIn).
    AddInController aiCtrl = AddInController.GetAddInController(CalcAddIn);
    AppDomain AddInAppDom = aiCtrl.AppDomain;
    
    // Activate another add-in in the same application domain.
    Calculator CalcAddIn3 =
    	selectedToken2.Activate<Calculator>(AddInAppDom);
    
    // Show that CalcAddIn3 was loaded
    // into CalcAddIn's application domain.
    AddInController aic = AddInController.GetAddInController(CalcAddIn3);
    Console.WriteLine("Add-in loaded into existing application domain: {0}",
    	aic.AppDomain.Equals(AddInAppDom));
    
    
    

Per attivare un componente aggiuntivo negli stessi dominio e processo dell'applicazione come un altro componente aggiuntivo

  • Utilizzare l'overload del metodo Activate<T>(AddInEnvironment).

    
    // Get the AddInController of a 
    // currently actived add-in (CalcAddIn).
    AddInController aiController = AddInController.GetAddInController(CalcAddIn);
    
    // Select another token.
    AddInToken selectedToken2 = ChooseAddIn(tokens);
    
    // Activate a second add-in, CalcAddIn2, in the same
    // appliation domain and process as the first add-in by passing
    // the first add-in's AddInEnvironment object to the Activate method.
    AddInEnvironment aiEnvironment = aiController.AddInEnvironment;
    Calculator CalcAddIn2 =
    	selectedToken2.Activate<Calculator>(aiEnvironment);
    
    // Get the AddInController for the second add-in to compare environments.
    AddInController aiController2 = AddInController.GetAddInController(CalcAddIn2);
    Console.WriteLine("Add-ins in same application domain: {0}", aiController.AppDomain.Equals(aiController2.AppDomain));
    Console.WriteLine("Add-ins in same process: {0}", aiEnvironment.Process.Equals(aiController2.AddInEnvironment.Process));
    
    
    

Per attivare un componente aggiuntivo in un nuovo processo

  • Utilizzare l'overload del metodo Activate<T>(AddInProcess, AddInSecurityLevel) o del metodo Activate<T>(AddInProcess, PermissionSet).

    
    // Create an external process.
    AddInProcess pExternal = new AddInProcess();
    
    // Activate an add-in in the external process
    // with a full trust security level.
    Calculator CalcAddIn4 =
    	selectedToken.Activate<Calculator>(pExternal,
    	AddInSecurityLevel.FullTrust);
    
    // Show that the add-in is an an external process
    // by verifying that it is not in the current (host's) process.
    AddInController AddinCtl = AddInController.GetAddInController(CalcAddIn4);
    Console.WriteLine("Add-in in host's process: {0}",
    	AddinCtl.AddInEnvironment.Process.IsCurrentProcess);
    
    
    
Mostra: