CodeSmith 使用教程(4): 基本语法-CodeTemplate 指令
2014-01-16 19:17
417 查看
前面的几篇介绍了使用CodeSmith模板自动生成代码和编写代码模板的基本知识。也说过CodeSmith最核心的部分是代码模板,从本篇开始介绍CodeSmith代码模板的基本语法,对于Asp.Net程序员来说,可以说是碰到老朋友了:-) ,CodeSmith 的代码模板和Asp.Net Page 几乎如出一辙。
本篇介绍CodeTemplate指令,这个是模板中唯一必须的声明,包含一些模板特殊的属性,包含模板使用的语言、生成的语言和一些对于模板的描述。比如:
[csharp]
view plaincopyprint?
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="This is a demo template" %>
参数的介绍:
Language:在开发编写模板时使用的语言,例如C#,VB.NET,Jscript等。
TargetLanguage:只是对模板代码的一个分类,不会影响生成的代码语言。是模板的一个属性,说明模板要基于那种语言生成相应的代码。例如你可以用CodeSmith从任何一种语言生成C#代码。
Description:对于模板的一些说明信息,在CodeSmith Explorer中选中该模板时会显示这里的信息。
Inherits:所有CodeSmith模板默认继承自CodeSmith.Engine.CodeTemplate,这个类提供模板使用的一些基本功能,像ASP.NET页面的Page类,这些被继承的类的属性可以被修改,但是这些新的类也必须继承CodeSmith.Engine.CodeTemplate。CodeSmith也同样可以找到这个类,当然你要引入一个组件包含这个类。
Src:在某些方面Src和继承Inherits比较相似,它们都允许你从其他的类包含一些功能进模板。这两个属性的区别是,Src可以让类与你的模板被动态编译,而Inherits仅允许你提供一个已经编译好的类或组件。
Debug:可以确定是否在模板中可以包含调试符号。如果将这个属性设置为True,则可以使用System.Diagnostics.Debugger.Break()方法来设置断点。
LinePragmas:设置为True,模板的错误将被指向到模板的源代码。设置为False,模板的错误将被指向到编译的源代码。
ResponseEncoding 指明代码模板的输出文件的编码方式,可以为 System.Text.Encoding.GetEncoding支持的所有编码方式,如果输出文件已存在并且和要生成的内容一致,输出文件的编码方式不会变化。
OutputType 指明输出文件的的输出模式,可以有三种模式:
Normal: 正常模式,代码模板输出内容写到正常的输出流(Response Stream)。
Trace: 输出内容写到Trace(调试)输出流中。
None: 控制代码模板不输出任何内容,主要用在主-从模板的主模板中,有些情况下无需主模板输出任何内容。
NoWarn 不显示某些编译警告,Warning的ID使用逗号分隔,主要用在编译C#和VB.Net时用到。
ClassName 使用Code-Behind时对应的类名称,类似于Asp.Net代码。
Namespace 使用Code-Behind时对应的类命名空间名称。
Encoding 代码模板自身使用的编码方式,缺省为UTF-8.
前面的几篇介绍了使用CodeSmith模板自动生成代码和编写代码模板的基本知识。也说过CodeSmith最核心的部分是代码模板,从本篇开始介绍CodeSmith代码模板的基本语法,对于Asp.Net程序员来说,可以说是碰到老朋友了:-) ,CodeSmith 的代码模板和Asp.Net Page 几乎如出一辙。
本篇介绍CodeTemplate指令,这个是模板中唯一必须的声明,包含一些模板特殊的属性,包含模板使用的语言、生成的语言和一些对于模板的描述。比如:
[csharp]
view plaincopyprint?
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="This is a demo template" %>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="This is a demo template" %>
参数的介绍:
Language:在开发编写模板时使用的语言,例如C#,VB.NET,Jscript等。
TargetLanguage:只是对模板代码的一个分类,不会影响生成的代码语言。是模板的一个属性,说明模板要基于那种语言生成相应的代码。例如你可以用CodeSmith从任何一种语言生成C#代码。
Description:对于模板的一些说明信息,在CodeSmith Explorer中选中该模板时会显示这里的信息。
Inherits:所有CodeSmith模板默认继承自CodeSmith.Engine.CodeTemplate,这个类提供模板使用的一些基本功能,像ASP.NET页面的Page类,这些被继承的类的属性可以被修改,但是这些新的类也必须继承CodeSmith.Engine.CodeTemplate。CodeSmith也同样可以找到这个类,当然你要引入一个组件包含这个类。
Src:在某些方面Src和继承Inherits比较相似,它们都允许你从其他的类包含一些功能进模板。这两个属性的区别是,Src可以让类与你的模板被动态编译,而Inherits仅允许你提供一个已经编译好的类或组件。
Debug:可以确定是否在模板中可以包含调试符号。如果将这个属性设置为True,则可以使用System.Diagnostics.Debugger.Break()方法来设置断点。
LinePragmas:设置为True,模板的错误将被指向到模板的源代码。设置为False,模板的错误将被指向到编译的源代码。
ResponseEncoding 指明代码模板的输出文件的编码方式,可以为 System.Text.Encoding.GetEncoding支持的所有编码方式,如果输出文件已存在并且和要生成的内容一致,输出文件的编码方式不会变化。
OutputType 指明输出文件的的输出模式,可以有三种模式:
Normal: 正常模式,代码模板输出内容写到正常的输出流(Response Stream)。
Trace: 输出内容写到Trace(调试)输出流中。
None: 控制代码模板不输出任何内容,主要用在主-从模板的主模板中,有些情况下无需主模板输出任何内容。
NoWarn 不显示某些编译警告,Warning的ID使用逗号分隔,主要用在编译C#和VB.Net时用到。
ClassName 使用Code-Behind时对应的类名称,类似于Asp.Net代码。
Namespace 使用Code-Behind时对应的类命名空间名称。
Encoding 代码模板自身使用的编码方式,缺省为UTF-8.
相关文章推荐
- uva 796(求割边)
- CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord
- HDU - 1231 - 最大连续子序列
- const引用测试小程序
- 我叫MT九游17区邀请ID,444331909
- CodeSmith 使用教程(2): 编写第一个代码模板
- 土法炼钢_百度百科
- MongoDB的学习--文档的插入、删除和更新
- 东芝L60061b 主板型号
- C语言中的加加减减
- CodeSmith 使用教程(1): 概述
- 【CSS】之引入方式
- 分页查询总结
- 向优秀的效率类应用学习--智能日历应用(Cal和Sunrise)
- J2EE开发教程集汇/J2EE系列开发经典书籍/从入门到精通/权威指南
- [Leetcode] Gray Code (Java)
- Java正则表达式中的十大问题
- “借鸡生蛋”九大技巧
- 配置ASA实现内网、DMZ和外网的访问
- J2EE系列开发帮助文档/电子书籍/史上最全API集汇/开发必备工具