T4 – Генератор коду вбудований в Visual Studio, Різне, Програмування, статті

Багато хто стикався з DSL Tools і ASP.Net MVC вже знайомі з системою генерації T4 (Text Template Transformation Toolkit), яка в даний момент вже вбудована в Visual Studio 2008.

Почнемо відразу з прикладу.


Приклад


Відкриваємо студію, створюємо проект консольного додатку. Потім створюємо файл з ім’ям “MyGenerator.tt”


Примітка: Звертаємо увагу на розширення *. Tt – це стандартне розширення файлів для T4. Однак, шаблон цього типу файлів відсутній в стандартному діалозі додавання нових елементів (Add New Item …), але, напевно, буде додано до нової версії.


Після створення можна буде побачити, що студія файл впізнала: з’явилася іконка у вигляді текстового документа зі стрілочкою (мабуть, така метафора транформації на льоту), а також з’явився вкладений вузол з порожнім файлом “MyGenerator.cs” – в цьому файлі за замовчуванням буде знаходиться результат генерації.


Якщо заглянути у властивості нового файлу то можна побачити таку ситуацію:



З розширенням *.tt автоматично зв’язався Custom Tool під назвою TextTemplatingFileGenerator.


Примітка: Тим хто займався створенням своїх Custom Tools для студії, відомо що автоматичне зв’язування певного розширення файлів з деяким Custom Tool робиться через реєстр. В даному випадку можна вивчити вміст і


Напишемо невеликий шматочок коду в цьому файлі:

<#@ template language=”C#” hostspecific=”true” #>

// Цей файл був згенерований.

// Генератор: <#= Host.GetType() #>

// Час створення: <#= DateTime.Now #>


Після збереження файлу, в підсумковому файлі “MyGenerator.cs”:

/ / Цей файл був згенерований.

/ / Генератор: Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService

/ / Час створення: 02/01/2009 00:12:25


Ось і вийшов мінімальний простий генератор коду, який, правда, не робить ніякої корисної роботи. Як можна помітити, шаблони T4 пишуться на дещо подібне до ASP.Net, тільки використовується інший тип дужок, замість <%%> вставляємо <# ​​#>.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*