T4 模板

Posted geduocoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T4 模板相关的知识,希望对你有一定的参考价值。

T4模板入门

T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit。T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎。简单的说就是可以根据模板生成你想要的文件,可以使类文件,文本文件,html等等。

VS本身只提供一套基于T4引擎的代码生成的执行环境,由下面程序集构成:

Microsoft.VisualStudio.TextTemplating.10.0.dll

Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll

Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll

Microsoft.VisualStudio.TextTemplating.VSHost.10.0.dll

T4模板编辑器插件:

vs默认编辑器无高亮,无提示。T4编辑器有多款,这只是其中一个。

T4的编辑工具下载地址http://t4-editor.tangible-engineering.com/Download_T4Editor_Plus_ModelingTools.html

T4基本语法:

  T4语法主要包括三类:

  1. 指令块 - 向文本模板化引擎提供关于如何生成转换代码和输出文件的一般指令。
    #@ output extension=".txt" #>  
  2. 文本块 - 直接复制到输出的内容。
    <#@ output extension=".txt" #>  
    Hello 
  3. 控制块 - 向文本插入可变值并控制文本的条件或重复部件的程序代码,不能在控制块中嵌套控制块。
    1. 标准控制块。
      技术图片
      <#  
          for(int i = 0; i < 4; i++)  
            
      #>  
      Hello!  
      <#  
             
      #> 
      技术图片
    2. 表达式控制块。
      <#= 2 + 3 #>  
    3. 类功能控制块。
    4. 技术图片
      <#@ output extension=".txt" #>  
      Squares:  
      <#  
          for(int i = 0; i < 4; i++)  
            
      #>  
          The square of <#= i #> is <#= Square(i+1) #>.  
      <#  
             
      #>  
      That is the end of the list.  
      <#+   // Start of class feature block  类功能控制块以 <#+ ... #> 符号分隔。
      private int Square(int i)  
        
          return i*i;  
        
      #>  
      技术图片
    5. 技术图片
      List of Squares:  
      <#  
         for(int i = 0; i < 4; i++)  
           WriteSquareLine(i);   
      #>  
      End of list.  
      <#+   // Class feature block  类功能块包含文本块
      private void WriteSquareLine(int i)  
        
      #>  
         The square of <#= i #> is <#= i*i #>.  
      <#+     
        
      #> 
      技术图片

 指令:

<#@ DirectiveName [AttributeName = "AttributeValue"] ... #>  
  1. T4 模板指令
    <#@ template [language="VB"] [compilerOptions="options"] [culture="code"] [debug="true"] [hostspecific="true"] [inherits="templateBaseClass"] [visibility="internal"] [linePragmas="false"] #>  
  2. T4 参数指令
    <#@ parameter type="Full.TypeName" name="ParameterName" #>
  3. T4 输出指令
    <#@ output extension=".fileNameExtension" [encoding="encoding"] #> 
  4. T4 程序集指令
    <#@ assembly name="[assembly strong name|assembly file name]" #>  
  5. T4 导入指令
    <#@ import namespace="namespace" #>  
  6. T4 包含指令
    <#@ include file="filePath" #>  
  7. T4 CleanUpBehavior 指令
    <#@ CleanupBehavior processor="T4VSHost" CleanupAfterProcessingtemplate="true" #>  

 

 

以上是关于T4 模板的主要内容,如果未能解决你的问题,请参考以下文章

T4模板之基础篇

T4模板之基础篇

T4模板学习心得

T4模板简单了解

T4 模板

T4模板之文本模板