文法
命令、テキストブロック、制御ブロックを含みます。
1.命令
命令は、テンプレート、出力、組立、輸入、含ま含めるテンプレートをコンパイルして実行するためにT4エンジンを伝えるためにどのように他の種類を、。これらの命令は、T4エンジン設定パラメータに対応します。
例:
<#@ template debug="true" hostspecific="true" language="C#" #>
C#で書かれたT4エンジン制御ブロックを知らせます。
- langeuage:出力言語、C#、VBの実効値、C#のデフォルト
- デバッグ:デバッグを有効にするかどうかを、真、偽、デフォルトの実効値はfalseです。
- hostspecific:有効な値は真、偽、デフォルトはfalseです。このプロパティがtrueの値に設定されている場合は、テンプレートクラスによって生成されたテキストへのホストの属性と呼ばれます。プロパティはホスト変換エンジンへの参照であるとMicrosoft.VisualStudio.TextTemplating.ITextTemplatingEngineHostを宣言しました。
- 継承:プログラムコードはテンプレートは、テキストテンプレートから生成することができ、別のクラスから継承することができます指定することができます。現在の木材が使用され、基本的に無視
<#@ output extension=".cs" #>
T4エンジンは、ファイル名の接尾辞.csファイルを生成し、知らせます。
<#@ assembly name="System.Core"#>
T4エンジンアセンブリ参照をコンパイルして実行時間System.Core知らせます。
<#@ assembly name="$(SolutionDir)\Project.CodeGenerator\bin\Debug\MySql.Data.Dll" #>
特定の位置にT4エンジンリファレンスアセンブリを伝えます。
$(SolutionDir):現在のプロジェクトのソリューションカタログ
$(PROJECTDIR):現在のプロジェクトのディレクトリ
$(TargetPathが):現在のプロジェクトのコンパイラの出力ファイルの絶対パス
$(TARGETDIR):現在のプロジェクトのビルド出力ディレクトリ、プロジェクトのウェブBinディレクトリ、 (現在のコンパイルモードに応じて)クラスライブラリプロジェクトのbinディレクトリのデバッグまたはリリースディレクトリの下のコンソール、
例:たとえば、私たちは、コンソールプロジェクトのMyTest、DへのソリューションディレクトリのDのルートディレクトリ上に構築された:\風水、プロジェクトディレクトリがある
\風水\ MyTestには、デバッグモードでコンパイルするための時間:D
$(SolutionDir) \風水:Dの値
Dの$(PROJECTDIR)値:\風水\ MyTestに
$(TargetPathが)がDである:\風水\ MyTestに\ binに\デバッグ\ Mytest.exe
\風水:$(TARGETDIR)がDであります\ MyTestに\ビン\デバッグ
<#@ import namespace="System.Data.SqlClient"#>
名前空間への参照は、T4エンジンランタイム・コンパイラに伝えます
<#@ include file="../Code/DBSchema.ttinclude"#>
ランタイムは、JSの参照と同様に、T4エンジンを語っコンパイルドキュメントへの参照
1.2テキストブロック
テキストブロックは、テキストブロックのT4エンジンの内容が直接出力ファイルにコピーされます。
1.3制御ブロック
制御ブロック、制御本文を出力します。制御ブロック内の任意のC#コードを書き込むことができます。
<# 标准控制块 #> 可以包含语句。
<#= 表达式控制块 #> 可以包含表达式。
<#+ 类特征控制块 #> 可以包含方法、字段和属性,就像一个类的内部
1.4のHello Worldの例
#@ template debug="true" hostspecific="true" language="C#" #>
<#@ output extension=".txt" #> Hello, <#Write("World");#>