T4模板基础

在此次做教务系统时,用到了许多T4模板来生成代码。那么T4模板到底是干什么的,为什么要使用T4模板呢?这里简单的了解一下它的作用。

在创建一个T4模板时,默认会出现以下代码段:

<#@ 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=".txt" #>

上面这些代码即是T4模板中的指令块,即

模板指令:即指明这里用的是C#的代码模板,程序集指令,导入指令,输出指令,以及还有参数指令和包含指令。在运用过程中没有接触到这么多细节的东西,只是简单的了解了一下,这里拿系统中的一个小例子来说明:

<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF.Utility.CS.ttinclude"#><#@
 output extension=".cs"#> //这里输出为.CS文件
<#
CodeGenerationTools code = new CodeGenerationTools(this);
MetadataLoader loader = new MetadataLoader(this);
CodeRegion region = new CodeRegion(this, 1);//区域代码
MetadataTools ef = new MetadataTools(this);

string inputFile = @"..\\ITOO.Basic.Model\\BasicEntity.edmx"; //这里

EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);//创建EdmItemCollection并加载元数据

string namespaceName = code.VsNamespaceSuggestion();

EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
#>
using ITOO.Basic.Model; //这些是文本块
using ITOO.Library.Core;

namespace ITOO.Basic.IBLL
{
<#
foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name)) //这些是控制块
{
#>
	public partial interface I<#=entity.Name#>BLL :IBaseService<<#=entity.Name#>>
    {
	}
<#}#>
}

文本块:直接复制到输出的内容。

控制块:向文本插入可变值并控制文本的条件或重复部件的程序代码,不能在控制块中嵌套控制块。这里包括可变化的参数,如<#=entity.Name#>用<#...#>来表示。

以上是一些对T4模板的简单认识,从功能上看,主要是为了减少代码重复。从而使开发人员减少重复的工作。更多详情请见:http://www.cnblogs.com/heyuquan/archive/2012/07/26/2610959.html

时间: 2024-08-02 16:24:48

T4模板基础的相关文章

.Net T4 模板 实例(一)

T4模板基础就不在这里重复了,园子里有很多文章讲解T4模板. 今天给大家介绍一个实例 主要是针对WPF MVVM中Model的书写, Model的格式大致是: // 测试 private string a; /// <summary> /// 测试 /// <summary> public string A { get { return a; } set { if (a != value) { a = value; this.RaisePropertyChanged("A

T4模板简单了解

T4模板基础 T4即为Text Template Transformation Toolkit,一种可以由自己去自定义规则的代码生成器.根据业务模型可生成任何形式的文本文件或供程序调用的字符串 在VS中T4模板是没有智能提示和颜色标注的,可以安装官方推荐插件:tangibleT4EditorPlusModellingTools T4模板有两种类型: 设计时模板(文本模板) 当需求变化时,可以根据业务需求调整模型(输入),按照指定规则将“模型”生成任何类型的“文本文件”,例如:网页.资源文件或任何

T4模板:T4模板之基础篇

一.回顾 上一篇文章 --T4模板之菜菜鸟篇,我们囫囵吞枣的创建了与"T4模板"有关的文件.在创建各个文件的这一个过程中,我们对于T4模板有了那么丁点的认识.现在就带着之前的那些问题,正式的迈入对"T4模板"的学习. 二.概念 2.1.类型 T4 文本模板有两种类型: 设计时 T4 文本模板 运行时 T4 文本模板 三.简要教程 我们只讲"设计时T4文本模板",其他的都TMD属于高级部分了,哥不懂给不给? 打开之前我们创建的"TextT

T4模板之基础篇

一.回顾 上一篇文章 ——T4模板之菜菜鸟篇,我们囫囵吞枣的创建了与“T4模板”有关的文件.在创建各个文件的这一个过程中,我们对于T4模板有了那么丁点的认识.现在就带着之前的那些问题,正式的迈入对“T4模板”的学习. 二.概念 2.1.类型 T4 文本模板有两种类型: 设计时 T4 文本模板 运行时 T4 文本模板 三.简要教程 我们只讲“设计时T4文本模板”,其他的都TMD属于高级部分了,哥不懂给不给? 打开之前我们创建的“TextTemplate_.tt”文件: 很明显的有一个特征,那么就是

轻量级ORM 利用T4模板 批量生成多文件 实体和业务逻辑 代码

FluentData,它是一个轻量级框架,关注性能和易用性. 下载地址:FlunenData.Model 利用T4模板,[MultipleOutputHelper.ttinclude]批量生成多文件 基本语法: 1. 初始化:获取MultipleOutputHelper.ttinclude文件模板 在T4模板导入 //导入MultipleOutputHelper.ttinclude文件 路径 <#@include file="$(SolutionDir)\ORM.Model\T4\Mult

基于T4模板的文档生成

看了好几个代码自动生成的工具,用起来很方便,但有些方面还是不够自由:这些日子里忙里偷闲摸索了一番,个人觉的基于T4模板的代码生成方案还是不错的. 下面就看看这个T4到底是什么东东-- T4 = Text Template Transformation Toolkit 不知道电脑前的你是否接触过Asp或jsp之类的动态网页编程语言,个人感觉就和那些动态网页的的编写思路差不多只不过那些编译前是*.asp.*.aspx,或*.jsp,这个T4编译前是的扩展名是tt(*.tt) 先看一个简单的tt文件

使用T4模板生成代码的学习

之前做项目使用的都是Db First,直接在项目中添加Entity Framework,使用T4模板(T4模板引擎之基础入门)生成DAL BLL层等(T4模板是一个同事给的,也没有仔细研究,代码如下:) <#@ template language="C#" debug="false" hostspecific="true"#> <#@ include file="EF.Utility.CS.ttinclude"

从零开始编写自己的C#框架(12)——T4模板在逻辑层中的应用(一)(附源码)

对于T4模板很多朋友都不太熟悉,它在项目开发中,会帮我们减轻很大的工作量,提升我们的开发效率,减少出错概率.所以学好T4模板的应用,对于开发人员来说是非常重要的. 园子里对于T4模板的介绍与资料已经太多了,所以在这里我就不再详细讲述基础知识了,只是说说T4模板在本框架中的具体应用与实践. 一.创建逻辑层项目 二.添加引用 将之前添加的三个项目添加到引用 三.创建T4模板放置的文件夹,并命名为SubSonic 四.将Solution.DataAccess项目中SubSonic文件夹下的Multip

T4模板~又名基架---一种提升ASP.NET MVC开发速度的强大工具!

看过的相当不错的一篇文章,但是对基架还时不太理解,大神们看到,希望指点一二,能告诉点学习资源就更好了! 本篇文章不是出自本人之手,转载完全处于膜拜以及学习! 欢迎加我微信:jkxx123321 备注博客加就可以了! 最近由于需要在框架中提供一些自定义模板的功能,找到了一篇博客,可惜似乎是翻译工具直接翻的,读不通顺,就试着自己翻译下,我不会完全翻译原文的句子,可能会对原文进行小范围的我认为更合适的句子并添加些注释,,原文地址如下: http://blogs.msdn.com/b/webdev/ar