27
4006-5666-83
当前位置:首页 > 资讯 > 建站知识

[北京网站制作].NET程序员不要错过如此强大的T4模板

2011-10-20 酷站科技

功能齐全的T4文字模板

期待您最少能意识到即便有编码全自动制作器,但数据库查询构造变动等要素也会让我们产生许多 的不便。这类立即放进新项目里.tt文档的益处当然无需多讲过。有尤其的业务流程要求,在.用partial类来完成,以防模版文档自动升级编码时将笔写的编码遮盖掉。(北京市网站制作)

T4文字模板究竟有什么作用?什么时候用?

看一下下边这一实例你应该便会懂了:

在建一个控制面板程序运行,删掉里边的全部文档,在建一个Program.tt的文档,并键入以下內容:


 
  1. <#@ template language="C#"debug="true"#> 
  2. <#@ output extension=".cs"encoding="utf-8"#> 
  3. <#  
  4. stringClassName = "Program";  
  5. #>stringClassName = "Program";  
  6. #> 
  7. namespaceHelloAngel  
  8. {  
  9. usingSystem;  
  10. class<#=ClassName #> 
  11. {  
  12. staticvoidMain(string[] args)  
  13.  {  
  14. Console.WriteLine("Hello Angel");  
  15. }  
  16. }  

储存后大家会见到解决方法任务管理器中是这一款式的:

这时的Program.cs文件更是大家的Program.tt文档转化成的,其內容以下:

  1. namespaceHelloAngel  
  2. {  
  3. usingSystem;  
  4. classProgram  
  5. {  
  6. staticvoidMain(string[] args)  
  7. {  
  8. Console.WriteLine("Hello Angel");  
  9. }  
  10. }  

看一下下边2个命令:

  1. <#@ template language="C#"debug="true"#> 
  2. <#@ output extension=".cs"encoding="utf-8"#> 

<#@ template #>命令中language特定了大家模版运作应用的語言,能够 是VB,或C#,debug申明了是不是应用调节,假如用不上调节,能够 设定为false.

<#@ output #>命令中extension特定了輸出文档的后缀名,encoding特定輸出文档的编码方案。

换句话说,我们可以应用C#語言来写此模版文档中的逻辑性,模版可能輸出一个与模版文件夹名称同样,拓展名叫.cs编号为utf-8的文档。

这儿稍加掌握下,接下去看一下命令的英语的语法吧:

命令的英语的语法以下所显示:

  1. <#@ DirectiveName [AttributeName = "AttributeValue"] ... #> 

务必将全部特点值放到双引号内。假如值自身包括冒号,则务必应用 标识符对这种冒号开展转义。

命令一般是模版文档或包括的文档中的第一个原素。不可将他们置放在代码块 <#...#> 内,都不应置放在类功能块 <# ...#> 以后。

T4 模版命令

<#@ template [language="VB"] [hostspecific="true"] [debug="true"] [inherits="templateBaseClass"] [culture="code"] [compilerOptions="options"] #>

T4 主要参数命令

<#@ parameter type="Full.TypeName"name="ParameterName"#>

T4 輸出命令

<#@ output extension=".fileNameExtension"[encoding="encoding"] #>

T4 程序流程集命令

<#@ assembly name="[assembly strong name|assembly file name]"#>

T4 导进命令

<#@ import namespace="namespace"#>

T4 包括命令

<#@ include file="filePath"#>

看过上边的命令后,就尝试写个模版文档转化成一些类来训练一下吧:

  1. <#@ template language="C#"debug="true"#> 
  2. <#@ output extension=".cs"encoding="utf-8"#> 
  3. <#@ import namespace="System.Collections.Generic"#> 
  4. <#  
  5. List<List<string>classNames =  
  6. new List<string>()  
  7. {  
  8. "Hello",  
  9. "Test"  
  10. };  
  11. List<string>callMethods = new List<string>();  
  12.  #> 
  13. namespace HelloAngel  
  14.  {  
  15. using System;  
  16. <#  
  17. foreach (string className in classNames)  
  18. {  
  19. callMethods.Add(string.Format("{0}.Show();", className));  
  20. #>foreach (string className in classNames)  
  21. {  
  22. callMethods.Add(string.Format("{0}.Show();", className));  
  23. #> 
  24. class <#=className #> 
  25. {  
  26. /// <summary> 
  27. /// <#=className #>的注解  
  28. /// </summary> 
  29. public static void Show()  
  30. {  
  31. Console.WriteLine("ClassName:<#=className #>");  
  32. }  
  33. }  
  34. <#  
  35. #>}  
  36. #> 
  37. class Program  
  38. {   ;
  39. /// <summary> 
  40. /// 通道方式 的注解  
  41. /// </summary> 
  42. static void Main(string[] args)  
  43. {  
  44. <#  
  45. foreach (string callMethod in callMethods)  
  46. {  
  47. #>foreach (string callMethod in callMethods)  
  48. {  
  49. #> 
  50. // <#=callMethod #>启用  
  51. <#=callMethod #> 
  52.  <#  
  53. }  
  54. #>}  
  55. #> 
  56. }  
  57. }  

大家一般的新项目多是分了简易三层,拥有上边的一些工作经验,你应该会想。如果只写三个类.tt文档,就能全自动让我们把全部三层维护保养好哪么多令人激动啊!的确,我是这样的人干了一个新项目给大伙儿共享一下:

看一下如今全部新项目成什么样子了:

这儿不仅三个新项目了。你加了个UnitTest的新项目,一个Adapters的新项目,看项目规划可以看出来,UnitTest新项目便是一个测试报告。而Adapters新项目呢,是实体线电源适配器新项目。先无论他们了。

就那么点物品,早已进行三层的搭建了,仅仅還是Paramter方法的。沒有对存储过程的适用。十一要是没有人陪着我过得话,我能将对存储过程的适用加上上来。

建新项目的情况下建的是.net 4的,这儿我将它改成.net2.0的了。但是自己只配有visual stuido 2010,假如您应用的是Visual studio 2008请您自主将新项目文档中的版本信息更改,此方式 在网上有很多。我不多唠叨了。

标识:北京市网站制作 高档网站建设

来源于申明:以上内容一部分(包括照片、文本)来自互联网,若有侵权行为,请立即与本网站联络(010-57218159)。
如没特殊注明,文章均为酷站科技原创,转载请注明来自http://www.bjkuzhan.com/jianzhanzhishi/3928.html
联系专业的商务顾问,制定方案,专业设计,一对一咨询及其报价详情
服务热线服务热线 4006-5666-83
联系我们 contact us
4006-5666-83
400-6566-683 — 海淀营业部
400-6566-683 — 昌平营业部
+

酷站科技为你提供上门/网站策略方案

留下联系方式,我们将会在一个工作日内与你联系

隐私条款信息保护中,请放心填写