图文说明如何使用T4在VS2008里生成代码

谈起代码生成,相信大家对CodeSmith一定不会陌生,但可惜的是CodeSmith并不是一个免费的午餐,可是要收费的哦,因此如果对一些公司上的正式应用起来就可能不太方便了。

其实微软早已为我们设计了套非常好用的代码生成模板,只要你装上了VS2008后就可以直接使用了,这套代码生成模板就叫 T4 ,全称为:Text Template Transformation Toolkit,其语法就和C#一样,可以动态生成任意自定义代码,功能非常强大,使用起来也很简单哦

以下先说说最基本的使用:

1.创建一个工程项目(我就先以一个控制台项目为例吧),然后添加新项目,这时可以选择类别为类文件,最重要一点是文件后缀一定要以 TT 结尾,如下图:

 

 

2.输入以下代码:

< # = " //helo CoderBlog.In , this is a testing " # >


然后选中此文件点鼠标右键,点“运行自定义工具”,如下图:

 


 这时就会在VS里自动生成一个对应的CS文件,里面就有我们刚才输入的代码了,这只是最简单的应用,T4可以支持丰富的语法,如我们将以上的代码改为:

< # for ( int  i = 0 ;i < 5 ;i ++ ){# >
< # = " //helo CoderBlog.In  "   +  DateTime.Now# >
< #}# >


这时记得先要保存,如果语法有问题则会保存不了的哦,然后再看看CS文件的结果:

// helo CoderBlog.In 2010-1-20 21:17:56
// helo CoderBlog.In 2010-1-20 21:17:56
// helo CoderBlog.In 2010-1-20 21:17:56
// helo CoderBlog.In 2010-1-20 21:17:56
// helo CoderBlog.In 2010-1-20 21:17:56

 

呵呵,感觉到了吧,其语法就和以C#的差不多,代码必须使用 <##> 号包括起来。

 

OK,介绍完最基本的使用后,当然也要介绍一下如何能更方便地使用T4啦。虽然T4可很灵活地生成代码,但可惜的是其没有语法高亮也没有智能提示,让人写起模板代码来非常痛苦,那么有没办法可以解决这2个问题呢?呵呵,既然我提了出来,想必大家也知道一定有办法解决的啦

 

这里先介绍一个专门用来生成TT文件的VS的模板工具,此工具叫 T4 Toolbox 有了此工具,大家就可以在添加新项目时直接选择对应的 TT 模板,而且也有了一定的语法区分功能,先看看效果吧: 

 

 

通过此工具,可以选择生成不同的TT模板,而且可以随时改变其输入文件类型,以下是选择了 Script.tt 后生成的代码:

ExpandedBlockStart.gif 代码
< #@ template language = " C# "  hostspecific = " True "  debug = " True "  # >
< #@ output extension = " cs "  # >
< #@ include file = " T4Toolbox.tt "  # >
< #
//  <copyright file="Script1.tt" company="">
//   Copyright © . All Rights Reserved.
//  </copyright>


#
>


 在以上代码中,第二行即可指定输出的文件类型,在此为CS即输出为一个C#代码文件,你也可以将其改为SQL,将会生成一个SQL脚本文件。

OK,接下来介绍第二个工具,通过此工具就可以为 T4 实现智能提示和丰富的语法高亮功能啦,此工具就是 T4 Editor, 以下是使用了 T4 Editor 后的效果哦:


不过 T4 Editor 是一个收费软件,但使用其免费版也已够用了,其中的智能提示与引用的NameSpace有关,免费版的话有些NameSpace不支持就不会出现提示了,不支持的引用会有波浪线显示出来的。

以下是上面2个工具的官方下载地址:

T4 Toolbox 免费的
T4 Editor(填写相关信息后即可下载免费版) 

 

呵呵,通过以上的介绍,想必大家对T4已有一定的了解,其实使用T4已完全可以完成CodeSmith里的工作了

 

 

 

 

转载于:https://www.cnblogs.com/winsonet/archive/2010/01/20/1652770.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值