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


Создание кода и текстовые шаблоны T4

В Visual Studio текстовый шаблон T4 представляет собой сочетание блоков текста и логики управления, которое может создать текстовый файл. Логика управления представляет собой фрагменты программного кода в Visual C# или Visual Basic. Созданный файл может представлять собой текст любого вида, например веб-страницу, файл ресурсов или исходный программный код на любом языке.

Существует два вида текстовых шаблонов 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 времени разработки выполняются в Visual Studio для определения части исходного кода и других ресурсов приложения.
    Как правило, используется несколько шаблонов, считывающих данные из одного входного файла или базы данных, и создается несколько файлов .cs, .vb или других исходных файлов. Каждый шаблон позволяет создать один файл. Они выполняются в Visual Studio или MSBuild.

    Например, в качестве входных данных может использоваться XML-файл данных конфигурации. Каждый раз при редактировании XML-файла во время разработки текстовые шаблоны повторно создают соответствующую часть кода приложения. Один из шаблонов может напоминать шаблон в следующем примере:

    <#@ output extension=".txt" #>
    <#@ 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. 
    }
    

    Кроме того, в качестве входных данных можно использовать схему рабочих процессов в бизнес-действии. При изменении рабочего бизнес-процесса пользователями или начале работы с новыми пользователями, использующими другой рабочий процесс, легко пересоздать код в соответствии с особенностями новой модели.

    Шаблоны времени разработки позволяют более быстро и надежно изменять конфигурацию при изменении требований. Как правило, входные данные определяются в терминах бизнес-требований (как в примере рабочего процесса). Это облегчает процесс обсуждения изменения с пользователями. Шаблоны времени разработки, таким образом, являются полезным инструментом гибкого процесса разработки.

    Чтобы создать шаблон времени разработки, добавьте в проект файл Текстовый шаблон. Кроме того, можно добавить обычный текстовый файл и задать для свойства Специальный инструмент значение TextTemplatingFileGenerator.

    Дополнительные сведения см. в разделе Создание кода во время разработки с помощью текстовых шаблонов T4. Дополнительные сведения о синтаксисе шаблонов см. в разделе Написание текстового шаблона T4.

Примечание

Термин модель иногда используется для описания данных, считываемых одним или несколькими шаблонами.Модель может быть представлена в любом формате, любым файлом или базой данных.Он не обязательно является моделью UML или доменного языка. 'Модель указывает, что данные можно определить в терминах бизнес-концепций, а не является аналогом кода.

Функция преобразования текстовых шаблонов называется T4.

Содержание раздела

Ресурсы

Центр разработки T4 Примеры, советы и ответы на часто задаваемые вопросы о библиотеках T4.

См. также

Основные понятия

Практическое руководство. Создание файлов из модели UML

Другие ресурсы

Создание кода из доменного языка

Журнал изменений

Дата

Журнал

Причина

Март 2011

Указаны различия между шаблонами времени выполнения и времени разработки.

Обратная связь от клиента.