Partager via


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

Le processus de transformation de modèle de texte accepte un modèle de texte comme entrée et produit un fichier texte comme 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 où Visual Studio est installé. Toutefois, vous devez fournir un hôte de modèles de texte. Cette classe connecte le modèle à l'environnement, recherchant des ressources telles que les assemblys et les fichiers Include, et traitant les messages d'erreur et de sortie.

Conseil

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

Notes

Il est préférable de ne pas utiliser les transformations de modèle de texte dans les applications serveur. Il est déconseillé de les employer, sauf dans un thread unique. En effet, le moteur de création de modèles de texte réutilise un AppDomain unique pour traduire, compiler et exécuter des modèles. Le code traduit n'a pas été conçu pour être thread-safe. Le moteur a été conçu pour traiter des fichiers de façon séquentielle, lorsqu'ils sont dans un projet Visual Studio au moment du design.

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

Si votre application utilise un ensemble de modèles fixés au moment de la compilation, il est plus facile d'employer des modèles de texte prétraités. Vous pouvez également utiliser cette approche si votre application doit s'exécuter sur un ordinateur où Visual Studio n'est pas installé. Pour plus d'informations, consultez Génération de texte durant l'exécution à l'aide de modèles de texte T4 prétraités.

Exécution d'un modèle de texte dans votre application

Pour exécuter un modèle de texte, vous pouvez appeler 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, de même que traiter la sortie.

Dans le paramètre host, vous devez fournir une classe qui implémente l'interface ITextTemplatingEngineHost. Celle-ci est rappelée par le moteur.

L'hôte doit être en mesure de consigner les erreurs, de résoudre les références à l'assembly et aux fichiers Include, de fournir un domaine d'application dans lequel le modèle peut s'exécuter et d'appeler le processeur approprié pour chaque directive.

Microsoft.VisualStudio.TextTemplating.Engine est défini dans Microsoft.VisualStudio.TextTemplating.10.0.dll, tandis que ITextTemplatingEngineHost est défini dans Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll.

Dans cette section

Référence

ITextTemplatingEngineHost

Rubriques connexes

Historique des modifications

Date

Historique

Motif

Octobre 2010

Remarque élaborée à propos de la sécurité des threads

Commentaires client.