Partager via


Modèles avec plusieurs implémentations d'IWizard

Mise à jour : novembre 2007

Dans les versions de Visual Studio antérieures à Visual Studio 2008, les modèles ne prenaient en charge qu'une implémentation d'IWizard. Visual Studio 2008 introduit une nouvelle fonctionnalité, connue sous le nom de « chaînage », qui autorise pour un même modèle plusieurs implémentations distinctes d'IWizard. Ces implémentations sont appelées de manière séquentielle, ce qui vous permet de créer des modèles aux fonctionnalités plus riches et plus flexibles.

Détails d'implémentation

Un Assistant VsTemplate implémenté par Microsoft est appelé pour traiter un modèle par la lecture de son fichier .vstemplate. Il peut indiquer un ou plusieurs assemblys comportant une implémentation d'IWizard qui sera appelée à participer au traitement du modèle. Pour tirer parti du chaînage, tous les Assistant doivent être répertoriés dans le fichier .xml du modèle, dans l'ordre dans lequel ils doivent être appelés.

Un objet Dictionary peut agir comme une liste de remplacement de paramètres en permettant à un modèle de passer des paramètres à une implémentation d'IWizard et en permettant également à une implémentation d'IWizard de passer des paramètres à une autre implémentation. Une référence à l'objet Dictionary passé à RunStarted peut être enregistrée par IWizard. Toutes les modifications apportées par IWizard dans les rappels de notification sont rendues persistantes.

Les paramètres de remplacement (tels que $MyVariable) sont globaux dans la portée et sont accessibles depuis n'importe quel IWizard. Veillez à attribuer un nom unique aux variables de remplacement que d'autres Assistants IWizard ne doivent pas utiliser ou modifier par inadvertance. Il est conseillé de documenter les paramètres de remplacement pour vos Assistants, afin que les autres utilisateurs puissent connaître leur utilisation.

IWizard contient une propriété booléenne nommée ShouldAddItem. Cette propriété signale à un Assistant s'il doit ajouter les fichiers indiqués. Si ShouldAddItem a la valeur false, aucun des Assistants qui suivent l'Assistant actuel ne chargera l'élément.

Voir aussi

Tâches

Comment : substituer des paramètres dans un modèle

Comment : utiliser des Assistants avec des modèles de projet