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. |
[!REMARQUE]
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 des modèles de texte T4.
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 des modèles de texte T4.
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.11.0.dll, tandis que ITextTemplatingEngineHost est défini dans Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll.
Dans cette section
- Procédure pas à pas : création d'un hôte de modèle de texte personnalisé
Indique 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.
Référence
Rubriques connexes
Processus de transformation du modèle de texte
Décrit le fonctionnement de la transformation de texte et indique les parties que vous pouvez personnaliser.Création de processeurs de directives de modèles de texte T4 personnalisés
Fournit une vue d'ensemble des processeurs de directive de modèle de texte.