T4模板试水篇1_入门
T4模板作为VS自带的一套代码生成器,功能有多强大我也不知道,最近查找了一些资料学习一下,做个笔记
更详细的资料参见:
MSDN: http://msdn.microsoft.com/zh-cn/library/bb126445.aspx
你必须懂的T4模板:深入浅出:http://www.cnblogs.com/heyuquan/archive/2012/07/26/2610959.html
准本工作:
T4模板是没有颜色高亮提示的,我们可以安装vs支持的插件,我安装的是 T4 Editor,当然还有其他比如 Visual T4等,
T4 Editor下载地址:http://t4-editor.tangible-engineering.com/Download_T4Editor_Plus_ModelingTools.html
一 .T4模板分类
T4模板分为 文本模板 和 运行时文本模板,其中文本模板 程序的源代码在程序编译前就被使用(写代码时开始编译),可以直接转换成项目的程序源码,运行时文本模板,即运行时开始编译,生成各式文档。
下面以 运行时文本模板 为例创建一个简单的实例:

其中RuntimeTextTemplate1.tt为创建的运行时文本模板,在“添加-新建项”中可以找到“运行时文本模板”
创建好的空的RuntimeTextTemplate1.tt有一些初始代码
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".html"#>
<#@ template language="C#" #> 指定使用的编程语言是C#,<#@ output extension=".html"#>指定输出的是html文件,其他的暂时不管,语法暂时不考虑,接着后面添加简单的测试代码:
<h3>运行时文本模板</h3>
<div>
hello World
</div>
下面我们查看这个模板,创建一个web窗体应用程序,WebPrintTest.T4,在index的Page_Load()中加入一下代码
RuntimeTextTemplate1 T4= new RuntimeTextTemplate1();
string str = T4.TransformText();
print.InnerHtml = str;
就可以在index.aspx中显示生成的模板,
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="WebPrintTest.T4.Index" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="print" runat="server">
</div>
</form>
</body>
</html>
查看一下:
运行时文档模板会产生一个类(以模板名称命名),查看一下部分代码:

二 .调试
如果要调试T4文本模板文件,首先将模板指令<#@ template #> 的debug特性值设置为true,然后倒入命名空间
<#@ import namespace="System.Diagnostics" #>
若要在模板执行的特定点启动调试器,请插入对 Debugger.Launch() 的调用。 若要在后续的点处中断执行,请插入对 Debugger.Break() 的调用,【F10】单步调试
调试过程:

T4模板试水篇1_入门的更多相关文章
- Json.Net6.0入门学习试水篇
原文:Json.Net6.0入门学习试水篇 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中 ...
- T4模板之基础篇
一.回顾 上一篇文章 ——T4模板之菜菜鸟篇,我们囫囵吞枣的创建了与“T4模板”有关的文件.在创建各个文件的这一个过程中,我们对于T4模板有了那么丁点的认识.现在就带着之前的那些问题,正式的迈入对“T ...
- 23、ASP.NET MVC入门到精通——业务层和数据层父类及接口-T4模板
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在上一篇中,我们已经把项目的基本框架搭起来了,这一篇我们就来实现业务层和数据层的父接口及父类. 1.我们先来定义一个业务层父接口IBaseB ...
- T4模板之菜菜鸟篇
一.废话 T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visual Studio 中,“ ...
- T4 模板入门
T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit.T4(Text Template Transformation Toolkit)是微软官方在 ...
- 前端基于react,后端基于.net core2.0的开发之路(番外篇) 后端使用T4模板,生成某些类
1.介绍 因为开发过程中,有部分类是你加一个模型,就需要去改动的,每次加非常的烦,或者有些类,你只用到了他基类的方法,但是你还必须建一个文件才能调用他基类的方法,也很烦. 这个时候,T4就非常有用了. ...
- T4模板_入门
T4模板作为VS自带的一套代码生成器,功能有多强大我也不知道,最近查找了一些资料学习一下,做个笔记 更详细的资料参见: MSDN: http://msdn.microsoft.com/zh-cn/li ...
- CSharpGL(12)用T4模板生成CSSL及其renderer代码
CSharpGL(12)用T4模板生成CSSL及其renderer代码 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立 ...
- T4 模板 : 一种提升ASP.NET MVC开发速度方法
最近由于需要在框架中提供一些自定义模板的功能,找到了一篇博客,可惜似乎是翻译工具直接翻的,读不通顺,就试着自己翻译下,我不会完全翻译原文的句子,可能会对原文进行小范围的我认为更合适的句子并添加些注释, ...
随机推荐
- Linux 下安装oracle数据库
原文出处 http://www.linuxidc.com/Linux/2015-02/113222.html 需要安装Oracle DataGuard,所以先要安装单台Oracle11g, ...
- NSString字符串类型-学习总结
1.字符串的创建 (1)创建常量字符串 NSString *str = @"This is a String"; //str是变量名 (2)创建空的字符串,给字符串赋值 NSStr ...
- Mysql学习(慕课学习笔记4)创建数据表、查看数据表、插入记录
创建数据表 Create table [if not exists] table_name(column_name data_type,…….) UNSIGNED 无符号SIGNED 有符号 查看创建 ...
- 关于JDBC中Class.forName的疑惑
一直以来都不知道为什么执行了 Class.forName(); 之后,通过DriverManager.getConnection(); 就可以获取相关数据库的连接Connection的实现呢?今天看了 ...
- 插件的理解$.extend()与$.fn.extend()
插件的理解.$.extend()与$.fn.extend() 插件开发包括两种:1.类级别的插件开发,即$.extend()扩展jquery对象本身:2.对象级别的插件开发,即$.fn.exte ...
- 文件:一个任务 - 零基础入门学习Python029
文件:一个任务 让编程改变世界 Change the world by program 一个任务 这节课,我们需要一起来完成一个任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起 ...
- 快速入门:触摸输入(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)
原文 http://technet.microsoft.com/zh-cn/subscriptions/hh465387 快速入门:触摸输入(使用 C#/VB/C++ 和 XAML 的 Windows ...
- Android模仿微信语音聊天功能
项目效果如下: 项目目录结构如下: 代码如下: AudioManager.java import java.io.File; import java.io.IOException; import ja ...
- Navicat_Preminum
一. 安装 参考http://blog.csdn.net/longyuhome/article/details/79206041. 软件准备• [OYKSOFT.COM]navicat11.0.8_p ...
- UITableView系列(1)---Apple缓存池机制
一.概述 关于UITableView的基本使用, 其实十分简单.但是做App最重要的之一就是细致,技术方面要做到细致, 必须深入了解底层, 才能做出优化让程序跑得更快.那么这一系列文章从我实际项目中获 ...