Condividi tramite


Modelli con più implementazioni dell'interfaccia IWizard

In Visual Studio è supportata la concatenazione, grazie alla quale un singolo modello può avere più implementazioni di IWizard. Queste implementazioni vengono chiamate in sequenza, pertanto è possibile creare modelli con una funzionalità dettagliata e flessibile.

Dettagli di implementazione

Per l'elaborazione di un modello una procedura guidata VsTemplate implementata da Microsoft viene richiamata attraverso la lettura de file vstemplate. In VsTemplate vengono elencati gli assembly che presentano un'implementazione di IWizard che verrà chiamata per l'elaborazione del modello. Per utilizzare la concatenazione, tutte le procedure guidate devono essere elencate nel file xml del modello nell'ordine di chiamata.

Un oggetto Dictionary può comportarsi come un elenco di sostituzione parametro consentendo a un modello di passare i parametri a un'implementazione IWizard e consentendo anche a un'implementazione IWizard di passare i parametri a un'altra. Un riferimento al dizionario passato a RunStarted può essere salvato da IWizard. Tutte le modifiche apportate da IWizard nei callback di notifica vengono salvate in modo persistente.

I parametri sostitutivi (ad esempio $MyVariable) sono globali nell'ambito e possono essere utilizzati da qualsiasi IWizard. Assicurarsi di denominare in modo univoco le variabili sostitutivi che non devono essere utilizzate o modificate da altri IWizard accidentalmente. Si consiglia di documentare ogni parametro sostitutivo per le procedure guidate, in modo che gli altri utenti possano conoscerne l'utilizzo.

IWizard contiene una proprietà booleana denominata ShouldAddItem. Questa proprietà notifica a una procedura guidata se deve aggiungere i file indicati. Se ShouldAddItem è impostato su false, nessuna procedura guidata successiva alla procedura guidata corrente caricherà l'elemento.

Vedere anche

Attività

Procedura: sostituire i parametri di un modello

Procedura: utilizzare procedure guidate con modelli di progetto