Обработка текстовых шаблонов с помощью пользовательского хост-класса
Процесс преобразования текстового шаблона принимает файл текстового шаблона на входе и создает текстовый файл на выходе. Можно вызывать процессор преобразования текста из расширения Visual Studio или из отдельного приложения, которые выполняется на компьютере, на котором установлена Visual Studio. Однако необходимо предоставить основное приложение преобразования текстового шаблона. Этот класс подключает шаблон к среде, находя ресурсы, такие как сборки и включаемые файлы, и работает с выводом и сообщениями об ошибках.
Совет
При создании пакета или расширения, который будет выполняться в Visual Studio, можно воспользоваться службой текстовых шаблонов, а не создавать собственный узел.Дополнительные сведения см. в разделе Вызов преобразования текста в расширении VS.
Примечание
Преобразования текстовых шаблонов не рекомендуется использовать в серверных приложениях.Преобразования текстовых шаблонов не рекомендуется использовать, когда выполняется более одного потока.Это объясняется тем, что модуль текстовых шаблонов многократно использует один домен приложения для преобразования, компиляции и выполнения шаблонов.Потокобезопасность преобразованного кода не предусмотрена.Модуль предназначен для серийной обработки файлов, поскольку они находятся в проекте Visual Studio во время разработки.
При работе с приложениями времени выполнения имеет смысл использовать предварительно обработанные текстовые шаблоны. См. раздел Создание текста во время выполнения с помощью предварительно обработанных текстовых шаблонов T4.
Если приложение использует набор шаблонов, фиксированных во время выполнения, проще использовать предварительно преобразованные текстовые шаблоны. Данный подход можно также использовать в случае, когда приложение будет выполняться на компьютере, где не установлена Visual Studio. Дополнительные сведения см. в разделе Создание текста во время выполнения с помощью предварительно обработанных текстовых шаблонов T4.
Выполнение текстового шаблона в приложении
Для выполнения текстового шаблона следует вызвать метод ProcessTemplate класса Microsoft.VisualStudio.TextTemplating.Engine:
using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);
Приложение должно найти и предоставить этот шаблон, а также принять вывод.
В параметре host задается класс, реализующий интерфейс ITextTemplatingEngineHost. Он вызывается процессором шаблонов.
Основное приложение должно быть способно протоколировать ошибки, разрешать ссылки на сборки и включаемые файлы. предоставлять домен приложения, в котором может выполняться шаблон, и вызывать подходящий процессор для каждой директивы.
Microsoft.VisualStudio.TextTemplating.Engine определяется в Microsoft.VisualStudio.TextTemplating.10.0.dll, а ITextTemplatingEngineHost определяется в Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll.
В данном разделе
- Пошаговое руководство. Создание пользовательского хост-класса для текстовых шаблонов
Показано, как создать основное приложение текстового шаблона, которое делает функциональные возможности текстовых шаблонов доступными вне Visual Studio.
Ссылка
См. также
Процесс преобразования текстового шаблона
Описано, как работает преобразование текста и какие части можно настраивать.Создание пользовательских обработчиков директив для текстовых шаблонов
Предоставляется обзор процессоров директив текстовых шаблонов.
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Октябрь 2010 |
Расширено примечание о потокобезопасности |
Обратная связь от клиента. |