冠军

导航

VS2010 中的代码生成器 T4 - Text Template Transformation Toolkit

你可能使用过 Code Smith ,或者动软代码生成器。但是,在 VS2010 中就有一个强大的代码生成器,你使用过吗?

它位于你的 C:\Program Files\Common Files\microsoft shared\TextTemplating\10.0 文件夹下。如图所示:

 

 

不过,我们一般不直接使用这个工具,而是通过 VS2010 来使用它。

在 VS2010 中创建一个控制台项目,然后,选择增加一个文本模板文件,注意文件的扩展名为 .tt,如图所示:

 

 

选择增加后,会看到一个提示框,这是在提示你,模板可能有风险。这是我们自己做的,当然没有风险。

 

现在,你会看到默认情况下,这个模板文件中的内容

 

1 <#@ template debug="false" hostspecific="false" language="C#" #>
2 <#@ output extension=".txt" #>

 

 

而且,你会在解决方案管理器中看到对应的生成文件 TextTemplate1.txt ,这个名字来自于你的模板文件,只不过将扩展名更新为了 txt。

更新的原因是模板中的第二行说明。下面我们将扩展名更改为 .html

 

1 <#@ template debug="false" hostspecific="false" language="C#" #>
2 <#@ output extension=".html" #>

 

保存后,txt 文件不见啦,你会看到一个名为 TextTemplate1.htm 的文件。

打开你的  TextTemplate1.html  ,会看到里面没有内容。

下面我们写一个简单的模板,在模板文件中增加如下的内容。

 

 1 <#@ template debug="false" hostspecific="false" language="C#" #>
 2 <#@ output extension=".html" #>
 3 
 4 <html>
 5     <body>
 6         <h1>模板示例</h2>
 7             <table>
 8                 <for (int i = 0; i < 3; i++)
 9                 { #>
10                     <tr><td>Name <#= i #> </td>
11                     <td>Value <#= i * i #> </td> </tr>
12                 <# } #>
13             </table>
14     </body>
15 </html>

 

 

存盘!然后,看看你的文件中有什么!

 

 1 <html>
 2     <body>
 3         <h1>模板示例</h2>
 4             <table>
 5                 <tr><td>Name 0 </td>
 6                     <td>Value 0 </td></tr>
 7                                     <tr><td>Name 1 </td>
 8                     <td>Value 1 </td> </tr>
 9                                     <tr><td>Name 2 </td>
10                     <td>Value 4 </td> </tr>
11             </table>
12     </body>
13 </html>

 

 

 太震撼啦,还能做什么呢?

你可以先看一看这篇文章,scott 的 T4 (Text Template Transformation Toolkit) Code Generation - Best Kept Visual Studio Secret

 下一次,我将详细介绍 T4 相关的工具,使用,常见问题。

 

posted on 2010-06-12 22:33  冠军  阅读(8272)  评论(7编辑  收藏  举报