Asp.net MVC企业级开发(09)---T4模板
T4即为Text Template Transformation Toolkit,一种可以由自己去自定义规则的代码生成器。根据业务模型可生成任何形式的文本文件或供程序调用的字符串 ? ? 在VS中T4模板是没有智能提示和颜色标注的,可以安装官方推荐插件:tangibleT4EditorPlusModellingTools ? ? 9.1 T4 文本模板有两种类型? ?
可在应用程序中执行运行时 T4 文本模板("预处理过的"模板)以便生成文本字符串(通常作为其输出的一部分)。 若要创建运行时模板,请向您的项目中添加"已预处理的文本模板"文件。 另外,您还可以添加纯文本文件并将其"自定义工具"属性设置为"TextTemplatingFilePreprocessor"。 ? ?
在 Visual Studio 中执行设计时 T4 文本模板,以便定义应用程序的部分源代码和其他资源。 ? ? 通常,您可以使用读取单个输入文件或数据库中的数据的多个模板,并生成一些 .cs、.vb 或其他源文件。 每个模板都生成一个文件。 若要创建设计时模板,请向您的项目中添加"文本模板"文件。 另外,您还可以添加纯文本文件并将其"自定义工具"属性设置为"TextTemplatingFileGenerator"。 ? ? 9.2 文本模板的组成? ? 9.2.1 指令? ?
模板指令中所有特性均为可选的。其中需要说明的是 hostspecific ,如果将此特性设为true,则会将名为Host的属性添加到由文本模板生成的类中。该属性是对象转换引擎的宿主的引用,并声明为Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost 类型。 ? ?
顾名思义,就是用来传参的,出现在运行时模板中。 ? ?
用于设置输出文件的后缀名和文件编码。 extension:输出文件扩展名,默认为".cs" encoding:文件编码,默值为utf-8 ? ?
程序集指令相当于VS里面我们添加程序集引用的功能。T4模版的程序集引用是完全独立的。 ? ? 可以使用 $(variableName) 语法引用 Visual Studio的变量。几个常用的变量如下:
? ?
import 指令允许您在不提供完全限定名称的情况下引用另一个命名空间中的元素。 它等效于 C# 中的 using。 ? ?
包含指令可以提高代码复用率,比如我们可以将一些常用的程序集、命名空间引用放到一个文件里,使用时仅需要引用下即可,省去了每次都要重新引用一遍的烦恼 ? ?
? ? 9.2.2 控制块? ? 控制块是用于转换模板的程序代码节 ? ?
? 也可以交错文本和代码,而不必使用显式 Write() 语句。 以下示例输出"Hello!"四次:
在代码中,可以使用 Write()语句的位置都可以插入文本块。 ? ?
? ?
? ? 9.3 案例:创建模型? ? 可以借助 DbHelper.ttinclude 和 Manager.ttinclude 两个第三方资源提高T4模板的开发效率。 DbHelper.ttinclude 的主要方法: DbHelper.GetDbTables() :获取指定数据库的所有表。 DbHelper.GetDbColumns():获取指定表的所有列。 ? ? Manager.ttinclude 的主要方法: Create(): 获取该类的一个实例。 StartNewFile():新建一个文件。 Process(true):生成文件。 ? ? 另外,数据库的连接字符串在Config类(DbHelper.ttinclude 文件)中。 ? ? 生成实体类T4模板的代码如下:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – asp.net mvc 3验证摘要不显示通过不显眼的
- asp.net-mvc – 为Html.TextBox设置值Html属性(MVC 1.0)
- asp.net-mvc – 使用Visual Studio和ASP.NET MVC加载时间非
- ASP.NET调试模式是否存在安全风险?
- asp.net – 如何在没有查找AspNetUserRoles表的情况下获取W
- asp.net-mvc-4 – 无法通过委派Handler Web API返回HTTP Un
- asp.net-mvc-4 – IEDriverServer在使用模拟时引发错误
- 如何在ASP.NET网页中嵌入代码块?
- asp.net-mvc – Spark View Engine的性能与ASP.NET相比如何
- asp.net-mvc-3 – 返回404错误ASP.NET MVC 3
- asp.net-mvc – 验证消息中的换行符
- asp.net-mvc – 空MVC5项目中的附加脚本
- asp.net-mvc – 在BaseController中获取/设置Htt
- asp.net-mvc – ASP.NET MVC的最佳实践
- asp.net – visual studio调试错误无法启动程序没
- ASP.NET -- WebForm -- Cookie的使用
- 身份验证 – 禁止ASP.NET Core中的API URL重定向
- asp.net – 使用冗长的服务器进程取消asynch回发
- entity-framework – 在mvc中使用控制器中的模型
- asp.net-mvc – 在MVC中传递参数的设计建议