CodeSmith培训
2008-11-10
目录
? CodeSmith简介 ? CodeSmith组成 ? CodeSmith基础 ? CodeSmith应用
CodeSmith简介
CodeSmith 是一种基于模板的代码生成工具, 是一种基于模板的代码生成工具, 它使用类似于 ASP.NET 的语法来生成任意类型的 代码或文本。与其他许多代码生成工具不同, 代码或文本。与其他许多代码生成工具不同, CodeSmith 不要求您订阅特定的应用程序
设计或 体系结构。 体系结构。使用 CodeSmith,可以生成包括简单 , 的强类型集合和完整应用
程序在内的任何东西。 的强类型集合和完整应用程序在内的任何东西。
CodeSmith组成
CodeSmith主要由两部分组成 1、CodeSmith Studio 用来创建自定义模板 2、CodeSmith Explorer 用来导入模板并且生成 代码
CodeSmith基础
1、CodeSmith模板语法参考 、 模板语法参考
1.1、标签 、 标签一般出现在模板的头部,被用做设置许多不同的属性。 标签一般出现在模板的头部,被用做设置许多不同的属性。 1.2、代码模板的声明(CodeTemplate Directive) 、代码模板的声明( ) 这个是模板中唯一必须的声明,包含一些模板特殊的属性, 这个是模板中唯一必须的声明,包含一些模板特殊的属性,包含模 板使用的语言、生成的语言和一些对于模板的描述。 板使用的语言、生成的语言和一些对于模板的描述。 1.3、属性的声明(Property Directive) 属性的声明( 属性的声明 ) 属性被用做在模板运行时声明一个使用的参数 1.4、XML属性声明(XmlProperty Directive) 、 属性声明( 属性声明 )
CodeSmith基础
1.5、注册的声明(Register Directive) 、
注册的声明( ) 这个属性通常被用作引入另一个模版文件并与当前的模版文件同时 被编译。这是一种使用子模版的交互方法。 被编译。这是一种使用子模版的交互方法。 1.6、组件的声明(Assembly Directive) 、组件的声明( ) 用作在模版中引用一个外部部组件, 用作在模版中引用一个外部部组件,或者包含一个编译好的源文件 1.7、引入的声明(Import Directive) 、引入的声明( ) 在模版中引入一个命名空间,这个与VB.NET中的 中的Imports和C#中的 中的using 在模版中引入一个命名空间,这个与 中的 和 中的 相同。 相同。
CodeSmith基础
2、CodeSmith的模版中的语法 、 的模版中的语法
2.1、代码标签 、 <% %>标签 标签 可以放置任意数量的代码在其中,但并不能直接输出到模版中。 可以放置任意数量的代码在其中,但并不能直接输出到模版中。 <%= %>标签 标签 在模版中输出一个字符串。 在模版中输出一个字符串。 2.2、脚本标签 、 在这个标签中可以包含一段代码,但是他不直接影响输出的模版。 在这个标签中可以
包含一段代码,但是他不直接影响输出的模版。可以 放置一些比较有帮助的方法在其中,然后在模版的各个地方可以调用它。 放置一些比较有帮助的方法在其中,然后在模版的各个地方可以调用它。在 脚本标签中必须包含这个参数runat=”template”,否则他会被处理成普通文 脚本标签中必须包含这个参数 , 本。 2.3、Include标签 、 标签 一样, 和ASP.NET一样,可以在模版中包含一些文本文件,但同 一样 可以在模版中包含一些文本文件,但同ASP.
NET一 一 样它也不是总能达到你的目标。 样它也不是总能达到你的目标。 2.4、Comment标签 标签 注释标签
CodeSmith基础
3、CodeSmith对象 、 对象
代码模板对象( 代码模板对象(CodeTemplate Object) ) 在模板中,“this”(或“Me”在
VB.NET中)在当前模板中代码代码模 在模板中, ( 在 中 板对象。 板对象。 代码模板的方法( 代码模板的方法(CodeTemplate Methods) ) 1.public virtual void GetFileName() . 2.public void CopyPropertiesTo(CodeTemplate target) . 3.public object GetProperty(string propertyName) .