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

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

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

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

 

 

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

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

 

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

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

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

 

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

 

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 相关的工具,使用,常见问题。

 

你可能感兴趣的:(transform)