Compartir a través de


Procesar las 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 produce 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.

SugerenciaSugerencia

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 Invocar la transformación de texto en una extensión de VS.

NotaNota

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 aplicaciones en tiempo de ejecución, considere la posibilidad de utilizar plantillas de texto preprocesadas: vea 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.

Ejecutar una plantilla de texto en la aplicación

Para ejecutar una plantilla de texto, se llama al método ProcessTemplate de 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.

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

En esta sección

Referencia

ITextTemplatingEngineHost

Secciones relacionadas