CodeSmith是一个基于模板的代码生成器。模板是所生成代码的式样。开发者或构架师可应用CodeSmith来生成任何文本语言的代码。其结果(生成的代码)可通过属性来自定义并包含在众多的标准属性类型之中。另外,用户还可建立自定义的属性类型。
针对.NET Framework而言,性质可以是任何拥有设计器的.NET对象。例如,它可以是一个简单的分配标题的字符串性质。另一方面,可用TableSchema对象来访问数据库表中的一切内容。
CodeSmith工具的一个强项是它的语法,其与ASP.NET的方法相当。实际上,你可以在CodeSmith模板中应用C#、VB.NET或Jscript。事实上,CodeSmith可输入任何ASCII语言。
CodeSmith 包括两个工具,一个是CCodeSmithStudio.exe是用来设计和编译模板;另一个是CodeSmith.exe是用来运行模板生成代码的, CodeSmith.exe还可以与VS.NET集成,成为VS.NET的一个外部工具。
以下是对CodeSmith实现原理的简略概述:
1、支持执行代码块语法 ,与 Asp.net语法一模一样
2、支持内联表达式语法 ,与 Asp.net语法一模一样
3、 支持Code Behind功能(,与 Asp.net的()类似
4、 支持 函数代码块功能, 与Asp.net的函数代码块功能 类似
5、支持属性申明,用于配置模板的属性. Asp.net语法不支持.