.NET T4 生成文件(一)简单介绍T4
模块介绍
T4模板的基本结构可以分成5类:
指令块:(Directive Block)
文本块:(Text Block)
代码语句块:(Statement Block)
表达式块:(Expression Block)
和类特性块:(Class Feature Block)
一、指令块(Directive Block)
指令块通过<#@…#>表示。
必要的指令为:<#@ template … #> 用于定义模板的基本属性。
常用的指令有:<#@ assembly … #>用于引用程序集、<#@ import … #>用于引入命名空间等
1.<#@template #>:
<#@ template language=“C#” #>表示该编程语言为C#。
2.<#@ assembly #>:
如<#@ assembly name=“System.Core” #> 表示引用Core的程序集。
3.<#@ import #>:
如<#@ import namespace=“System.Linq” #> 表示引用了Linq这个命名空间。
4.<#@output extension=""#>
如<#@output extension=".cs"#>,那么你输出的就是.cs文件;
如<#@output extension=".txt"#>,那么你输出的就是.txt文件。
Extension是扩展名的意思。
二、文本块(Text Block)
文本块就是直接原样输出的静态文本,不需要添加任何的标签。从指令块结束到第一个“<#”标签之间的内容就是一段静态的文本块,定义在<#…#>、<#+…#>、<#=…#>之间的都不属于文本块。
三、代码语句块(Statement Block)
代码语句块通过<#…#>的形式来表示,中间是一段使用相应的编程语言编写的程序代码,我们可以通过代码语句块控制文本的转化流程。由于我们使用的是.NET,所以在这里代码语句块的作用主要就是写C#代码,示例如下:
执行后生成如下图:
平时能在VS里写的代码,都可以在<# #>里表示。
四、表达式块(Expression Block)在这里插入图片描述
通过读取数据库的语句,最后生成出如下的内容:
五、类特性块(Class Feature Block)
类特性块通过<#+…#>的形式来表示,它可以用来定义供调用的方法。
如果文本转化需要一些比较复杂的逻辑,我们需要将其封装成一个单独的方法,甚至是封装成一个单独的类,那就要用到类特性块了,示例如下:
执行后生成如下图:
感谢您的观看!下一章会更新如何通过连接数据库,通过表名生成实体文件!
下集更精彩!期待关注!!