2010-09-03 14 views

Respuesta

7

Sí, se puede. Así es como lo estoy haciendo:

string templateText = File.ReadAllText(Host.ResolvePath(templateFileName)); 
Engine engine = new Engine(); 
string output = engine.ProcessTemplate(templateText, Host); 
//this is optional - record all output to your file of choice: 
File.WriteAllText(outputFilePath, output); 
+0

qué se basan esto en T4 caja de herramientas? – Maslow

+0

@Maslow no, no hay ninguna tercera parte obligada para que esto funcione ... – veljkoz

+1

Para futuras consultas: Añadir una referencia a Microsoft.VisualStudio.TextTemplating.Interfaces.11.0 y añadir <# @ nombre de ensamblado = "Microsoft.VisualStudio.TextTemplating. Interfaces.11.0 "#> y <# @ import namespace =" Microsoft.VisualStudio.TextTemplating "#> en el archivo T4. – LosManos

1

Hacemos esto mucho. Aquí hay un ejemplo de cómo reutilizamos una plantilla T4 común, pero los "parámetros de paso" en él:

<# 
var currentUsername = "billclinton"; // this is for integration tests impersonating a user in our case 
#> 
<#@ include file="..\SomeTemplateThatIWantToReuseHere.tt" #> 

Y mantenemos nuestra plantilla T4 "genérico" determinando dinámicamente la ubicación que la plantilla T4 es en realidad corrió en (en este caso, la plantilla T4 que tiene la línea include en ella):

string namespaceName = code.VsNamespaceSuggestion(); 
var namespaceParts = namespaceName.Split('.'); 
var currentNamespaceLeg = namespaceParts.Last(); 

esto nos permite hacer algunos muy potente de plantillas sin la necesidad de duplicar nuestras plantillas. Lo único que se "duplica" son nuestras 4 líneas .tt archivos que tienen la llamada include en ellos, pero estos son más o menos libre de mantenimiento, excepto lo que sea "configuración" queremos llevar a cabo mediante introducción de las variables en la forma en que lo hacemos.

2

Lo que su probablemente en busca de http://t4toolbox.codeplex.com/ es t4 caja de herramientas. Le permitirá generar códigos en archivos individuales y agregarlos a un proyecto automáticamente.

muy recomendable.

he utilizado t4 caja de herramientas para generar proyectos enteros simplemente sobre la base de un modelo.

Cuestiones relacionadas