テンプレートの書き方

テンプレートの書き方について見ていきましょう。

T4 Templateのコード

(1)ディレクティブの記述


(2)ロジック


(3)出力


(4)関数

T4では<# ~ #>で囲まれた部分が特別な意味を持ち、それ以外の文字はそのまま出力されます。

ディレクティブの記法

(1)の<#@ ~ #>で囲まれた部分はディレクティブと呼ばれます。ディレクティブではテンプレートの設定を行います。設定しない場合はデフォルト値で動作します。

ディレクティブの種類と概要

種類 概要 記述例
assembly 参照するアセンブリの設定
import 使用する名前空間の設定
template テンプレートの処理方法 (デフォルトlanguageはcs)
output 出力形式の設定 (デフォルトはcs)
include テンプレートファイルの読み込み

ディレクティブの詳細についてはMSDNのページをご覧ください。

本体の記法

(2)の<# ~ #>で囲まれた部分には実行するプログラム(デフォルトはC#)を記述できます。ここでは、変数を宣言しています。IF文、ループ文、.NETのライブラリ等も利用できます。
(3)の<#= ~ #>で囲まれた部分では変数を出力できます。<# Write(~); #>と書いても同じです。
(4)の<#+ ~ #>で囲まれた部分にはクラスやメソッドといった部品を定義できます。呼び出さない限り実行されません。

T4のデバッグ

テンプレートは一旦プログラムに変換されます。<#@ template debug="true" #>ディレクティブを設定しておけば、TEMPフォルダ(D:\Users\<ユーザ名>\AppData\Local\Temp等)にファイルを出力できます。この内容を見ることでテンプレートの変換内容を把握することができます。

変換されたプログラム(TextTransformationが親クラス)