·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 编写 T4 文本模板
文本模板由以下部件组成:
1)指令 - 控制模板处理方式的元素。
2)文本块 - 直接复制到输出的内容。
3)控制块 - 向文本插入可变值并控制文本的条件或重复部件的程序代码。
指令是控制模板处理方式的元素,为模板转换引擎提供说明。
T4文本模板指令包括: T4模板指令; T4参数指令; T4输出指令; T4程序集指令; T4导入指令; T4包含指令; T4 CleanUpBehavior 指令及其自定义指令。
指令的语法如下所示:
<#@ DirectiveName [AttributeName = "AttributeValue"] ... #>
【指令通常是模板文件或包含的文件中的第一个元素。 不应将它们放置在代码块 <#...#> 内,也不应放置在类功能块 <#+...#> 之后。】
<#@ template [language="VB"] [hostspecific="true|TrueFromBase"] [debug="true"] [inherits="templateBaseClass"] [culture="code"] [compilerOptions="options"] [visibility="internal"] [linePRagmas="false"] #>
<#@ parameter type="Full.TypeName" name="ParameterName" #>
<#@ output extension=".fileNameExtension" [encoding="encoding"] #>
比较重要的指令,用于设置输出文件的后缀名和文件编码。
<#@ assembly name="[assembly strong name|assembly file name]" #>
$(SolutionDir):当前项目所在解决方案目录
$(ProjectDir):当前项目所在目录
$(TargetPath):当前项目编译输出文件绝对路径
$(TargetDir):当前项目编译输出目录,即web项目的Bin目录,控制台、类库项目bin目录下的debug或release目录(取决于当前的编译模式)
$(SolutionDir):当前项目所在解决方案目录
$(ProjectDir):当前项目所在目录
$(TargetPath):当前项目编译输出文件绝对路径
$(TargetDir):当前项目编译输出目录,即web项目的Bin目录,控制台、类库项目bin目录下的debug或release目录(取决于当前的编译模式)
举个例子:比如我们在D盘根目录建立了一个控制台项目TestConsole,解决方案目录为D:\LzrabbitRabbit,项目目录为
D:\LzrabbitRabbit\TestConsole,那么此时在Debug编译模式下
$(SolutionDir)的值为D:\LzrabbitRabbit
$(ProjectDir)的值为D:\LzrabbitRabbit\TestConsole
$(TargetPath)值为D:\LzrabbitRabbit\TestConsole\bin\Debug\TestConsole.exe
$(TargetDir)值为D:\LzrabbitRabbit\TestConsole\bin\Debug\
举个例子:比如我们在D盘根目录建立了一个控制台项目TestConsole,解决方案目录为D:\LzrabbitRabbit,项目目录为
D:\LzrabbitRabbit\TestConsole,那么此时在Debug编译模式下
$(SolutionDir)的值为D:\LzrabbitRabbit
$(ProjectDir)的值为D:\LzrabbitRabbit\TestConsole
$(TargetPath)值为D:\LzrabbitRabbit\TestConsole\bin\Debug\TestConsole.exe
$(TargetDir)值为D:\LzrabbitRabbit\TestConsole\bin\Debug\
<#@ import namespace="namespace" #>
在 Visual Studio T4 文本模板的代码块中,import 指令允许您在不提供完全限定名称的情况下引用另一个命名空间中的元素。 它等效于 C# 中的 using 或 Visual Basic 中的 imports。默认已经导入了System命名空间的引用。
<#@ include file="filePath" #>
<#@ assembly name="System.Core.dll" #>