Создание кода и текстовые шаблоны T4
В Visual Studio текстовый шаблон T4 представляет собой сочетание блоков текста и логики управления, которое может создать текстовый файл. Логика элемента управления записывается в виде фрагментов кода программы в Visual C# или Visual Basic. Функции C# версии 6.0 можно использовать в директивах шаблонов T4. Созданный файл может содержать текст, например веб-страницу, файл ресурсов или исходный код программы на любом языке программирования.
Чтобы научиться использовать предметно-ориентированный язык (DSL), разработанный для выражения операторов в определенном пространстве проблем, перейдите в раздел Создание кода с помощью предметно-ориентированного языка.
Существует два типа текстовых шаблонов T4: времени выполнения и времени разработки.
Текстовые шаблоны T4 времени выполнения
Шаблоны времени выполнения также называются "предварительно обработанными". Они запускаются в приложении для создания текстовых строк в качестве выходных данных. Например, можно создать шаблон для определения HTML-страницы:
<html><body>
The date and time now is: <#= DateTime.Now #>
</body></html>
обратите внимание, что шаблон напоминает созданные выходные данные. Сходство шаблона с результирующими выходными данными помогает избежать ошибок, если необходимо изменить шаблон.
Кроме того, шаблон содержит фрагменты программного кода. Эти фрагменты можно использовать для повторения разделов текста, создания условных разделов и отображения данных из приложения.
Чтобы создать выходные данные, приложение вызывает функцию, которая создается с помощью шаблона. Например:
string webResponseText = new MyTemplate().TransformText();
Приложение может выполняться на компьютере, на котором не установлена среда Visual Studio.
Чтобы создать шаблон времени выполнения, добавьте в проект файл предварительно обработанного текстового шаблона . Также можно добавить обычный текстовый файл и установить для его свойства Пользовательский инструмент значение TextTemplatingFilePreprocessor.
Дополнительные сведения см. в статье Создание текста во время выполнения с помощью текстовых шаблонов T4. Дополнительные сведения о синтаксисе шаблонов см. в статье Написание текстового шаблона T4.
Текстовые шаблоны T4 времени разработки
Шаблоны времени разработки определяют часть исходного кода и другие ресурсы приложения. Обычно используется несколько шаблонов, которые считывают данные из одного входного файла или базы данных и создают несколько файлов .CS, .VB или другие исходные файлы. Каждый шаблон создает один файл в Visual Studio или MSBuild.
Например, входными данными может быть XML-файл данных конфигурации. При редактировании XML-файла во время разработки текстовые шаблоны повторно создают соответствующую часть кода приложения. Один из шаблонов может напоминать следующий пример:
<#@ output extension=".cs" #>
<#@ assembly name="System.Xml" #>
<#
System.Xml.XmlDocument configurationData = ...; // Read a data file here.
#>
namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #>
{
... // More code here.
}
В зависимости от значений в XML-файле созданный CS-файл может выглядеть следующим образом:
namespace Fabrikam.FirstJob
{
... // More code here.
}
Другим примером входных данных может быть диаграмма рабочих процессов в бизнес-деятельности. Когда меняется рабочий процесс или начинается работа с новыми пользователями, чей рабочий процесс отличается, можно легко создать код повторно в соответствии с новой моделью.
Примечание.
Термин модель иногда используется для описания данных, считываемых одним или несколькими шаблонами. Модель может быть представлена в любой форме, в виде файла или базы данных. Она не должна быть моделью UML или моделью для доменного языка. Слово "модель" просто указывает, что данные можно определить с точки зрения бизнес-концепции, а не в виде кода. Шаблоны времени разработки позволяют быстрее и надежнее изменять конфигурацию при изменении требований. Обычно входные данные определяются в рамках бизнес-требований, как показано в примере рабочего процесса. Шаблоны времени разработки являются полезными инструментами гибкого процесса разработки.
Чтобы создать шаблон времени разработки, добавьте в проект файл текстового шаблона . Также можно добавить текстовый файл и установить для его свойства Пользовательское средство значение TextTemplatingFileGenerator.
Дополнительные сведения см. в статье Создание кода во время разработки с помощью текстовых шаблонов T4. Дополнительные сведения о синтаксисе шаблонов см. в статье Написание текстового шаблона T4.
Функция преобразования текстового шаблона называется T4.