您的位置:首页 > 编程语言

【转】- 使用T4模板批量生成代码

2014-03-19 13:48 447 查看

前言

之前在 “使用T4模板生成代码 - 初探” 文章简单的使用了T4模板的生成功能,但对于一个模板生成多个实例文件,如何实现这个方式呢?无意发现一个解决方案 “MultipleOutputHelper.ttinclude” ,它让基于T4模板批量生成文件实例变得简单起来了。

什么是MultipleOutputHelper.ttinclude

Damien Guard是一个在加利福尼亚州圣何塞的开发人员,他构建出处理使用T4模板输出多文件的解决方案“MultipleOutputHelper.ttinclude”

使用

1. 初始化

获取MultipleOutputHelper.ttinclude文件模板

注意: 文件可以上github.com 托管上面获取( https://github.com/damieng/DamienGKit/tree/master/T4/MultipleOutputHelper
在T4模板中使用include指令导入MultipleOutputHelper.ttinclude文件或者将MultipleOutputHelper.ttinclude的代码复制在T4模板内。

然后初始化Manager对象,代码如下:



注意: 这里的Manager.ttinclude 就是MultipleOutputHelper.ttinclude文件模板

2. 文件块

使用代码标识区分生成的代码块的范围



该代码声明了一个Employee.generated.cs文件,文件代码内容为:

3. 页眉和页脚

很多模板需要共享一个共同的页眉和页脚时,可以使用import语句进行打开和关闭。简单的使用StartHeader和StartFooter的代码方法进行分割。



4. 编译执行

使用Process方法,进行文件分割。



场景应用

基于之前的“使用T4模板生成代码 - 初探” 文章的场景,进行基于NHibernate Mapper 来获取Domain对象,然后进行批量生成多个代码文件。

1. 自定义T4模板,文件名为“EntityRepositoryTemplate.tt”,代码如下:

输出文件效果:



让程序自动执行基于T4文件的编译工作

在MSDN-”演练:创建自定义文本模板宿主“ 文章里面看到一段代码,进行了T4文件的编译工作,代码如下:

联想:基于这个代码实例,可以做一个基于T4模板来批量输出代码的小工具,待续.....


参考资料

MultipleOutputHelper.ttinclude 文件作者(Damien Guard)- 博客( http://damieng.com

Damien Guard (Github)( https://github.com/damieng

创建自定义文本模板宿主( MSDN) ( http://msdn.microsoft.com/zh-cn/library/vstudio/bb126579.aspx )

使用T4模板生成代码 - 初探 ( http://www.cotide.com/xcli/Blog/Article/44

转自 http://www.cnblogs.com/K_tommy/archive/2013/04/06/T4.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: