Partager via


Traiter des modèles de texte à l’aide d’un hôte personnalisé

Le processus de transformation du modèle de texte prend un fichier de modèle de texte comme entrée et produit un fichier texte en tant que sortie. Vous pouvez appeler le moteur de transformation de texte à partir d’une extension Visual Studio ou d’une application autonome s’exécutant sur un ordinateur sur lequel Visual Studio est installé. Toutefois, vous devez fournir un hôte de création de modèles de texte. Cette classe connecte le modèle à l’environnement, en recherchant des ressources telles que des assemblys et des fichiers, et en traitant les messages de sortie et d’erreur.

Conseil / Astuce

Si vous écrivez un package ou une extension qui s’exécute dans Visual Studio, envisagez d’utiliser le service de création de modèles de texte au lieu d’écrire votre propre hôte. Pour plus d’informations, consultez Appel de transformation de texte dans une extension VS.

Note

Nous vous déconseillons d’utiliser des transformations de modèle de texte dans les applications serveur. Nous vous déconseillons d’utiliser des transformations de modèle de texte, à l’exception d’un seul thread. Cela est dû au fait que le moteur de création de modèles de texte utilise à nouveau un seul AppDomain pour traduire, compiler et exécuter des modèles. Le code traduit n’est pas conçu pour être thread-safe. Le moteur est conçu pour traiter les fichiers en série, car ils se trouvent dans un projet Visual Studio au moment du design.

Pour les applications au moment de l'exécution, envisagez d'utiliser des modèles de texte prétraités : consultez Génération de texte au moment de l'exécution avec des modèles de texte T4.

Si votre application utilise un ensemble de modèles fixes au moment de la compilation, il est plus facile d’utiliser des modèles de texte prétraite. Vous pouvez également utiliser cette approche si votre application s’exécute sur un ordinateur sur lequel Visual Studio n’est pas installé. Pour plus d’informations, consultez Génération de texte à l'exécution avec des modèles de texte T4.

Exécuter un modèle de texte dans votre application

Pour exécuter un modèle de texte, vous appelez la méthode ProcessTemplate de Microsoft.VisualStudio.TextTemplating.Engine:

using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);

Votre application doit rechercher et fournir le modèle, et doit gérer la sortie.

Dans le host paramètre, vous devez fournir une classe qui implémente ITextTemplatingEngineHost. Cela est rappelé par le moteur.

L’hôte doit pouvoir consigner des erreurs, résoudre les références à l’assembly et inclure des fichiers, fournir un domaine d’application dans lequel le modèle peut s’exécuter et appeler le processeur approprié pour chaque directive.

Microsoft.VisualStudio.TextTemplating.Engine est défini dans Microsoft.VisualStudio.TextTemplating.*.0.dllet ITextTemplatingEngineHost est défini dans Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.

Dans cette section

Procédure pas à pas : la création d’un hôte de modèle de texte personnalisé vous montre comment créer un hôte de modèle de texte personnalisé qui rend la fonctionnalité de modèle de texte disponible en dehors de Visual Studio.

Reference

ITextTemplatingEngineHost