上文带大家见识了下T4,这里呢开始介绍T4模板有关的内容。关于T4模板介绍和使用网上一搜一箩筐,想深入研究的可以自行去找些资料,这里只介绍接下来我们需要使用的一些知识,不会面面俱到的讲T4模板所有的知识。T4模板使用和ASPX文件使用方式近乎类似所以也不需要花太多时间。

打开TT文件,输入如下代码并保存:

@ assembly 指明TT模板环境使用的目标程序集

@ import 指明TT模板环境使用的命名空间

@ output 指明TT模板输出格式,包括文件后缀编码方式等

<##>中包含的代码即为控制块

未包含在<##>中的文本即文本块一般作为静态文本直接输出。

示例,创建一个1×5的表格并输出为Html格式:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".html" #>
<table>
<tr>
<#
for(int i=;i<;i++)
{
#>
<td></td>
<#
}
#>
</tr>
</table>

只要将<#@ output extension=".html" #>改成.html即可。从这里可以看出基本和使用ASPX是一样的。除了个别指令需要查看下资料以外,基本会C#就能直接使用。

说了这么多,T4模板在我们项目开发中的作用貌似未体现出来。下面以一个实例来说明T4模板的具体应用。

相信绝大多数人对于写实体类是不厌其烦的,没人会傻到手动去写实体类,除非是必要的业务实体。如何根据数据库表自动生成对应实体,这是我们一个简单的需求。下面就是如何通过T4模板实现这个需求(当然VS本身有这个功能,我们只是把这种功能的实现进行还原):

新建类库项目EntityGenerator,创建一个实体模板文件EntityTemplate.tt,输入如下代码并保存:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace EntityGenerator
{
public class TestEntity
{
/// <summary>
/// 编号
/// </summary>
public string Id { get; set; } }
}

打开生成的EntityTemplate.cs文件可以看到如下内容:

没错一个完整的类文件已经生成出来,接下来就是怎样让类的属性通过连接数据库来动态生成。这个在下篇将详细演示。因为到目前为止还没有太多的代码量,到后期代码量上来了,我会连同项目一起上传的。

最新文章

  1. vi编辑文件出现Can&#39;t open file for writing错误
  2. 将txt文件数据转成bin文件.
  3. Dynamic view
  4. 如何使用Fiddler调试线上JS代码
  5. Unity3D连接真机调试教程,可抓断点
  6. Linux用户管理(笔记)
  7. 80 多个 Linux 系统管理员必备的监控工具
  8. 使用 CodeIgniter 创建一个简单的 Web 站点
  9. [转载]Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
  10. Redis链表相关操作命令
  11. pdf文件之itextpdf插入html内容以及中文解决方案
  12. 在 ubuntu 中愉快的安装 Jenkins
  13. Js 运行机制 (重点!!)
  14. Linux命令----uname查看系统信息
  15. S老师 C#编程数据结构篇 学习
  16. OpenVAS应用实例
  17. MySql多表关联,根据某列取前N条记录问题
  18. 20165202 学习基础和c语言基础调查
  19. HIS系统两种收费模式比较:前计费和后计费
  20. 2017&quot;百度之星&quot;程序设计大赛 - 初赛(B) 度度熊的交易计划 最小费用最大流求最大费用

热门文章

  1. tomcat源码阅读
  2. Node.js REPL终端
  3. Promise 让异步更优
  4. [转]Windows Azure上安装SharePoint 2013
  5. JS添加删除一组文本框并对输入信息加以验证
  6. Javascript面向对象编程(三):非构造函数的继承 by 阮一峰
  7. delphi NativeXml的中文支持 乱码
  8. Search in Rotated Sorted Array II——LeetCode
  9. Teacher YYF - POJ 3746(打表........)
  10. Struts2.xml中result type属性说明