Tengo mi propio sistema de generador de código de plantilla, compilando el código en un dominio de aplicación separado, desde antes de que saliera VS2008.
Si le interesa, publique un comentario y publicaré una url en el código.
El código para usar mi motor de plantillas es here, puede buscarlo con un navegador web o señalar un cliente Subversion en él. Tenga en cuenta que el enlace que comienza aquí realmente se detiene después de la palabra, pero el procesador de WMD del lado del servidor filtra el enlace al siguiente texto.
Tenga en cuenta que si solo copia el archivo único en ese espacio de nombres, entonces no compilará por sí mismo, requiere algunas cosas en LVK.Delegates y LVK.Scripting, espacios de nombres hasta un par de niveles desde el enlace de arriba . Si no quieres absorber toda la biblioteca, tendrás que extraer las piezas de las que se queja de una en una hasta que compile.
También hay una versión binaria de la biblioteca en
/LVK_3_5/trunk/Binaries/Debug/LVK en el mismo repositorio. Si descarga esto, es tan simple como agregar una referencia a él y verificar la clase
LVK.Text.Templates.TextTemplate.
Lamentablemente no tengo ningún ejemplo para mi biblioteca en este momento.
Básicamente, para utilizar una plantilla:
TextTemplate tt = new TextTemplate();
tt.Source = "... code here, check example file above ...";
tt.Compile();
String output = tt.Generate(singleObjectParameter);
Dentro de la plantilla, que es básicamente todo el código que se inserta en un solo método (lo que significa que no es tan buena como la T4 en términos de ser capaz de agregue métodos fácilmente, pero puede usar métodos anónimos), tendrá acceso al objeto de datos transferido a él como un parámetro llamado datos.
Así que a la salida solo el contenido del parámetro pasado:
<%= data %>
repetirlo:
<% for (Int32 index = 0; index < 10; index++) { %>
<%= data %>
<% } %>
Si tiene alguna pregunta, enviarlos a mi correo electrónico en [email protected]
¿Qué dice la licencia (EULA) en el T4 redistribuible? ¿Hay una redistribuible? –
Ese es el problema: no he podido encontrar ninguno (todavía). Sé que debe estar empaquetado internamente en MS de alguna manera porque acaba de ser utilizado en su nuevo producto P & P Blueprints. – Rammesses