T4模板之文本模板
这个博主写的很良心了:https://www.cnblogs.com/lzrabbit/archive/2012/07/15/2591085.html
T4模板在平时我们其实都会或多或少的遇到。最多的用在实体与数据库的映射上面。
这里只记录一下他的语法。
需要的插件:vs2017
T4代码高亮插件:Devart T4 Editor
T4生成多文件:T4 Toolbox (使用这个可以很好的生成我们的实体映射,这篇不会使用到)
①我们需要创建一个文本模板,运行时文本模板我们不用管
查看这个*.tt文件属性
文本模板由以下部分组成:
指令 - 控制模板处理方式的元素。
文本块 - 直接复制到输出的内容。
控制块 - 将变量值插入文本的程序代码,并控制文本的条件或重复部分。
①T4指令
1.模板指令
<#@ template [language="C#"] [compilerOptions="options"] [culture="code"] [debug="true"] [hostspecific="true"] [inherits="templateBaseClass"] [visibility="internal"] [linePragmas="false"] #>
2.参数指令
<#@ parameter type="Full.TypeName" name="ParameterName" #>
3.输出指令
<#@ output extension=".fileNameExtension" [encoding="encoding"] #>
4.Assembly指令==代码中引用程序集
<#@ assembly name="[assembly strong name|assembly file name]" #>
5.导入指令==代码中的using 命名空间
<#@ import namespace="namespace" #>
6.包含指令(可以把相同的文件单独写个然后进行包含指令)
<#@ include file="filePath" [once="true"] #>
③控制块
<# Standard control blocks #>
可以包含语句。<#= Expression control blocks #>
可以包含表达式。<#+ Class feature control blocks #>
可以包含方法,字段和属性。
④转义字符
\<# ... \#>
下面是简单的了解下
①输出.txt文本
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #>
Hello Word
②使用循环输出多行文本
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #>
<# // 注意你的空格,(注释) #>
<#for(int i=0;i<4;i++){#>
Hello Word
<#}#>
③自定义方法进行调用
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #> <# // 注意你的空格 #>
<#for(int i=;i<;i++){#>
Hello Word i前:<#=i #> ,i后:<#= TestFu(i) #>
<#}#> <#+
//可以写我们的自定义的方法
private int TestFu(int n)
{
return n+;
}
#>
④输出.cs文件
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
namespace T4Demo
{
public class T4Test
{
/// <summary>
/// ID
/// </summary>
public int ID { get; set;} /// <summary>
/// 姓名
/// </summary>
public string Name { get; set;} }
}
⑤添加引用
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
namespace T4Demo
{
using System; public class T4Test
{
/// <summary>
/// ID
/// </summary>
public int ID { get; set;} /// <summary>
/// 姓名
/// </summary>
public string Name { get; set;} /// <summary>
/// 出生日期
/// </summary>
public DateTime? Birth { get; set;}
}
}
⑥转义字符
T4模板之文本模板的更多相关文章
- MVC开发T4代码生成之一----文本模板基础
T4文本模板 T4全写为Text Template Transformation Toolkit,是一种编程辅助工具,用来使程序代码自(懒)动(猿)生(福)成(利)的工具.MVC开发中大量使用了T4模 ...
- 使用 T4 文本模板生成设计时代码
使用设计时 T4 文本模板,您可以在 Visual Studio 项目中生成程序代码和其他文件. 通常,您编写一些模板,以便它们根据来自模型的数据来改变所生成的代码. 模型是包含有关应用程序要求的 ...
- T4 文本模板编写准则
如果要在 Visual Studio 中生成程序代码或其他应用程序资源,遵守以下一般准则可能非常有帮助. 它们并不是一成不变的规则. 设计时 T4 模板准则 设计时 T4 模板是在设计时在 Visua ...
- C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名
转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...
- 一个简单的代码生成器(T4文本模板运用)
说要写这篇文章有一段时间了,但因为最近各方面的压力导致心情十二分的不好,下班后往往都洗洗睡了.今天痛定思痛,终于把这件拖了很久的事做了.好,不废话了,现在看看"一个简单的代码生成器" ...
- 编写 T4 文本模板
文本模板由以下部件组成: 1)指令 - 控制模板处理方式的元素. 2)文本块 - 直接复制到输出的内容. 3)控制块 - 向文本插入可变值并控制文本的条件或重复部件的程序代码. 指令: 指令是控制模板 ...
- T4文本模板转换过程
T4文本模板转换过程将文本模板文件作为输入,生成一个新的文本文件作为输出. 例如,可以使用文本模板生成 Visual Basic 或 C# 代码,还可以生成 HTML 报告. 有三个组件参与这一过程: ...
- T4((Text Template Transformation Toolkit))模版引擎之基础入门 C#中文本模板(.tt)的应用
1 关于C#中文本模板(.tt)的简单应用https://blog.csdn.net/zunguitiancheng/article/details/78011145 任何一个傻瓜都能写出计算机能理解 ...
- T4文本模板
<#...#> 可以包含语句 <#=...#> 用于表达式,提供“输出”操作 <#+ ...> 使用类功能控制块向文本模板添加方法.属性.字段,必须作为文件中最后 ...
随机推荐
- C++程序设计基础(2)变量
注:读<程序员面试笔记>笔记总结 1.知识点 (1)C++变量命名只能包含字母.数字.下划线,其中开头不能是数字:大小写敏感:习惯上变量用小写字母,常量.宏定义用大写字母. (2)变量的作 ...
- MVC设置默认页面
方法1:在RouteConfig.cs文件中配置默认路由 public class RouteConfig { public static void RegisterRoutes(RouteColle ...
- Ajax简单介绍和使用步骤
Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写).现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax. 同步是指:发送方发出数据后,等 ...
- 操作系统-Interrupts
- node-sass安装失败的解决办法
安装node-sass一直失败,说起来还是自己把自己坑了,在度娘的帮助下我找到了下面这些资料: 资料1:FQ后再安装node-sass (无效),我使用的是lantern工具翻的墙 资料2:将yarn ...
- IO流之转换流
转换流 OutputStreamWriter类 查阅OutputStreamWriter的API介绍,OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流 ...
- HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系
HBase1.2.2伪分布式安装(HDFS)+ZooKeeper-3.4.8安装配置+HBase表和数据操作+HBase的架构体系+单例安装,记录了在Ubuntu下对HBase1.2.2的实践操作,H ...
- Qt之QSS(Q_PROPERTY-自定义属性)
版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣.好玩.靠谱...作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820 目录(?)[+] ...
- 讲座: conversation
一, Zhouming MSRA NLP group NLP 2.0 attention model 二,Yan Rui 一, retrived based-conversation system t ...
- CCF201712-1 最小差值
试题编号: 201712-1 试题名称: 最小差值 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值 ...