2013-03-14 2 views

Répondre

6

Un modèle avec le paramètre hostspecific défini sur "true" peut accéder à un membre this.Host de type ITextTemplatingEngineHost (MSDN). Vous pouvez ensuite utiliser par ex. sa méthode "ResolvePath" afin de localiser les fichiers nécessaires à la saisie dans le template.

Ceci est encore plus utile lorsque vous utilisez un moteur de modèle personnalisé. Voir le blog Oleg ici: http://www.olegsych.com/2008/02/t4-template-directive/

+0

Le lien 'Olegsych' n'est plus valide – Tatranskymedved

4

Vous pouvez utiliser la propriété « this.Host » une fois que le drapeau HostSpecific est fixé, qui est de type ITextTemplatingEngineHost et vous permet de faire la résolution de chemin de fichier entre autres. Cependant, lorsqu'il est utilisé dans Visual Studio (pas au moment de la construction ou à partir de la ligne de commande), vous pouvez également convertir l'hôte en IServiceProvider et être connecté au fournisseur de services global de Visual Studio.

Ceci vous permet d'utiliser n'importe quelle API de Visual Studio pour trouver des données pour votre modèle, ou manipuler le projet dans lequel vous êtes inclus ou des actions similaires.

Un scénario clé permet d'utiliser le CodeModel (ou bientôt Roslyn) pour analyser le code source en direct dans votre projet et l'utiliser comme source pour les métadonnées de génération.