Text Template Transformation Toolkit
Text Template Transformation Toolkit (скорочено T4) - шаблонно орієнтований генератор коду від компанії Microsoft. Він включений у Visual Studio починаючи з версії 2008 і для Visual Studio 2005 доступний як окремий тулкіт. T4 має ASP.NET подібний синтаксис.
T4 частини
Директиви обробки(Processing directives)
Директиви компіляції та опції обробки для блоків коду, мова програмування для даних директив це C#. Існують наступні типи директив:
- Директиви шаблонів(Template directive) - Дозволяє встановити правила за якими шаблон буде оброблено, можливе лише одиничне використання даної директиви. Приклад:
<#@ template [language="VB/C#"] [compilerOptions="опції компілятору"] [culture="код культури"]
[debug="true/false"] [hostspecific="true/false/trueFromBase"] [inherits="ім'я класу від якого відбувається наслідування"]
[visibility="public/internal"] [linePragmas="true/false"] #>
- Вихідні директиви(Output directive) - Дозволяє встановити тип вихідного файлу, а також кодування цього файлу. Приклад:
<#@ output extension=".extension" [encoding="encoding"] #>
Підтримуються наступні кодування: US-ASCII, UTF-16BE, UTF-16, UTF-8M, UTF-7, UTF-32, 0(Кодування за замовчуванням)
- Директиви зборки(Assembly directive) - Дозволяє додавати посилання на бібліотеки. Приклад:
<#@ assembly name="жорстке ім'я|ім'я файлу" #>
- Директиви імпорту(Import directive) - Дозволяє використовувати доданий простір імен у програмі. Приклад:
<#@ import namespace="простір імен" #>
- Директиви включення(Include directive) - Дозволяє вставляти текст з файлу у шаблон. Файл котрий імпортовано також може містити директиви для імпорту інших файлів. Приклад:
<#@ include file="Ім'я файлу" #>
- Директиви параметрів(Parameter directive) - Дозволяє задати змінну котра буде ініціалізована ззовні. Приклад:
<#@ parameter type="Повний тип змінної" name="Ім'я змінної" #>
Текстові блоки(Text blocks)
Блоки виводяться у вихідний файл без змін.
Блоки керування(Control blocks)
Програмний код для обробки даних може бутий написаний на мовах C# або Visual Basic і розміщюється у середині скобок(дужок). Код може використовувати будь-які конструкції мов, а також будь-які .NET API. Блоки бувають трьох типів:
- <# Standard control block #> - блок містить будь-який програмний код котрий робить обчислення і вивід, через функції виводу.
- <#= Expression control block #> - блок містить змінні та методи, які щось повертають, значення котрих буде виведене у вихідний файл.
- <#+ Class feature control block #> - блок містить методи, поля, властивості, перерахування(enum) котрі маєть бути реалізовані і можуть бути використані у інших блоках.
Посилання
- Code Generation and T4 Text Templates (англ.)
- Опис директив (англ.)
- Fun with T4 templates and Dynamic Data (англ.)
- генератор кода в Visual Studio (рос.)