二、T4模板
上文带大家见识了下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文件可以看到如下内容:
没错一个完整的类文件已经生成出来,接下来就是怎样让类的属性通过连接数据库来动态生成。这个在下篇将详细演示。因为到目前为止还没有太多的代码量,到后期代码量上来了,我会连同项目一起上传的。
最新文章
- vi编辑文件出现Can&#39;t open file for writing错误
- 将txt文件数据转成bin文件.
- Dynamic view
- 如何使用Fiddler调试线上JS代码
- Unity3D连接真机调试教程,可抓断点
- Linux用户管理(笔记)
- 80 多个 Linux 系统管理员必备的监控工具
- 使用 CodeIgniter 创建一个简单的 Web 站点
- [转载]Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
- Redis链表相关操作命令
- pdf文件之itextpdf插入html内容以及中文解决方案
- 在 ubuntu 中愉快的安装 Jenkins
- Js 运行机制 (重点!!)
- Linux命令----uname查看系统信息
- S老师 C#编程数据结构篇 学习
- OpenVAS应用实例
- MySql多表关联,根据某列取前N条记录问题
- 20165202 学习基础和c语言基础调查
- HIS系统两种收费模式比较:前计费和后计费
- 2017";百度之星";程序设计大赛 - 初赛(B) 度度熊的交易计划 最小费用最大流求最大费用
热门文章
- tomcat源码阅读
- Node.js REPL终端
- Promise 让异步更优
- [转]Windows Azure上安装SharePoint 2013
- JS添加删除一组文本框并对输入信息加以验证
- Javascript面向对象编程(三):非构造函数的继承 by 阮一峰
- delphi NativeXml的中文支持 乱码
- Search in Rotated Sorted Array II——LeetCode
- Teacher YYF - POJ 3746(打表........)
- Struts2.xml中result type属性说明