Поделиться через


Создание кода и текстовые шаблоны 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.

См. также