Procesar plantillas de texto mediante un host personalizado

El proceso de transformación de plantillas de texto toma un archivo de plantilla de texto como entrada y genera un archivo de texto como salida. Puede llamar al motor de transformación de texto desde una extensión de Visual Studio o desde una aplicación independiente que se ejecuta en un equipo donde está instalado Visual Studio. Sin embargo, debe proporcionar un host de plantillas de texto. Esta clase conecta la plantilla al entorno, localizando recursos como ensamblados y archivos de inclusión, y trabajando con los mensajes de error y resultado.

Sugerencia

Si está escribiendo una extensión o paquete que se ejecutará con Visual Studio, considere la posibilidad de utilizar el servicio de plantillas de texto, en lugar de escribir su propio host. Para obtener más información, vea Invocación de transformación de texto en una extensión de VS.

Nota

No se recomienda utilizar las transformaciones de plantilla de texto en aplicaciones de servidor. No se recomienda utilizar las transformaciones de plantilla de texto excepto en un subproceso único. Esto se debe a que el motor de plantillas de texto vuelve a utilizar un AppDomain único para traducir, compilar y ejecutar plantillas. El código traducido no es seguro para subprocesos. El motor está diseñado para procesar archivos en serie, como se encuentran en un proyecto de Visual Studio en tiempo de diseño.

Para las aplicaciones en tiempo de ejecución, considere la posibilidad de usar plantillas de texto preprocesadas; consulte Generación de texto en tiempo de ejecución con plantillas de texto T4.

Si la aplicación utiliza un conjunto de plantillas que se corrigen en tiempo de compilación, resulta más sencillo usar plantillas de texto preprocesadas. También puede utilizar ese enfoque si la aplicación se va a ejecutar en un equipo donde no está instalado Visual Studio. Para obtener más información, vea Generación de texto en tiempo de ejecución con plantillas de texto T4.

Ejecución de una plantilla de texto en la aplicación

Para ejecutar una plantilla de texto, se llama al método ProcessTemplate de Microsoft.VisualStudio.TextTemplating.Engine:

using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);

La aplicación debe encontrar y proporcionar la plantilla y debe trabajar con el resultado.

En el parámetro host, debe proporcionar una clase que implemente ITextTemplatingEngineHost. El motor lo vuelve a llamar.

El host debe poder registrar errores, resolver referencias a archivos de ensamblado e inclusión, proporciona un dominio de aplicación en el que se pueda ejecutar la plantilla, y llamar el procesador adecuado para cada directiva.

Microsoft.VisualStudio.TextTemplating.Engine se define en Microsoft.VisualStudio.TextTemplating.*.0.dll, y ITextTemplatingEngineHost se define en Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.

En esta sección

Tutorial: Creación de un host de plantilla de texto personalizado Muestra cómo crear un host de plantilla de texto personalizado que hace que la funcionalidad de la plantilla de texto esté disponible fuera de Visual Studio.

Referencia

ITextTemplatingEngineHost