分享

[转] T4模板基础

 johnny_net 2019-10-07

一、回顾

上一篇文章 ——T4模板之菜菜鸟篇,我们囫囵吞枣的创建了与“T4模板”有关的文件。在创建各个文件的这一个过程中,我们对于T4模板有了那么丁点的认识。现在就带着之前的那些问题,正式的迈入对“T4模板”的学习。

二、概念

2.1、类型

T4 文本模板有两种类型:

  • 设计时 T4 文本模板

  • 运行时 T4 文本模板

三、简要教程

我们只讲“设计时T4文本模板”,其他的都TMD属于高级部分了,哥不懂给不给?

打开之前我们创建的“TextTemplate_.tt”文件:


很明显的有一个特征,那么就是他们都是这种模式:

<#@ 指令 属性=“#>

就这样定了,我们按行来学习

3.1、指令:

3.1.1、模板指令

<#@ template debug="falsehostspecific="falselanguage="C#"#> 

说的是这个模板,不可以调试,不提供host这个属性,用的是C#语言。它的完整模式如下,中括号表示可选,没有写它将按照默认处理。

<#@ template [language="VB"] [compilerOptions="options"] [culture="code"] [debug="true"] [hostspecific="true"] [inherits="templateBaseClass"] [visibility="internal"] [linePragmas="false"] #>
3.1.2、程序集指令

<#@ assembly name="System.Core"#>   它的作用类似于在 Visual Studio 项目中添加程序集引用。

3.1.3、导入指令

<#@ import namespace="System.Linq"#>   它等效于 C# 中的 “using System.Linq;”。

3.1.4、输出指令

<#@ output extension=".txt#>   它就是告诉你,T4模板最终将生产.txt对应后缀的文件。

3.2、控制块

不难发现,如上截图,我们生成的“TextTemplate_.txt”它里面确实是什么内容都没有的。因此,更进一步的学习是“控制块”,对于不同控制块的组合,便能生成我们所需要的文件。


  • <# 标准控制块 #> 可以包含语句。

  • <#= 表达式控制块 #> 可以包含表达式。

  • <#+ 类特征控制块 #> 可以包含方法、字段和属性,就像一个类的内部

3.3、心动不如行动

唱首歌吧!“我是一只小小小鸟……”:


我是zeje,我们来定义一个变量 string name =“zeje”,再看看效果:


哥已经压抑了很久了,一起来呐喊吧:


发泄够了吧?仔细想想,这个类<#+ 类特征控制块 #> 还没用上。好吧,zeje就在这里自我介绍下吧:


既然都自我介绍过了,是不是可以开溜了呢?还是给大家都个红包吧!(这里可能需要另外说明,先凑合着看吧!)


生成结果如下:


上面涉及到额外的知识点:使用T4模板输出多文件,请自行学习。

四、高级篇

其实对于“T4模板”的学习,讲得最详细的还是MSDN,下面给出对应的链接,可以点开深入的了解。


原文地址:http://www.cnblogs.com/zeje/p/5248340.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多