codeSmith快速用
CodeSmith 是一种语法类似于asp.net的基于模板的代码生成器,程序可以自定义模板,从而减少重复编码的劳动量,提高效率。
下面我们就来学习一下CodeSmith的使用吧。
首先我们来看一看一个简单的模板文件:
<%@ CodeTemplate Language="C#" TargetLanguage="C#"
Description="Generates a class including a special informational header" %>
<%@ Property Name="NameSpace" Type="String"
Category="Context"
Description="The namespace to use for this class" %>
<%@ Property Name="ClassName" Type="String"
Category="Context"
Description="The name of the class to generate" %>
<%@ Property Name="DevelopersName" Type="String"
Category="Context"
Description="The name to include in the comment header" %>
using System;
namespace <%=NameSpace %>
{
/// <summary>
/// Summary description for <%=ClassName %>.
/// </summary>
public class <%=ClassName %>
{
public <%=ClassName %>()
{
//
// TODO: Add constructor logic here
//
}
}
}
解析:
第一句:
这个是模板中唯一必须的声明,包含一些模板特殊的属性,包含模板使用的语言、生成的语言和一些对于模板的描述。
CodeTemplate代表代码的模板,Language是我们要指定模板的语言,TargetLanguage我们要指定的模板应用的目标语言,一般与language一致。
Description描述信息。
第二句:
<%@ Property Name="NameSpace" Type="String"
Category="Context"
Description="The namespace to use for this class" %>
Property:指定我们要声明的属性,Name指定当前属性的名称,Type指定当前属性的类型,Category:用来说明这个属性在CodeSmith Explorer的属性面板中显示成什么类型,例
如下拉选择、直接输入等,Description是指定当前属性的描述。
第三句:第三句是C#语言的定义了,在定义这些语句的时候只要我们在需要做成模板进行替换的地方写上<%=属性名 %>就行了。这样一个超级简单的模板就出来了。
运行模板文件的效果如图:

在使用模板的时候,我们通常都能看到下拉列表的选择,那么我们应该怎么去编写带有下拉列表的模板呢?其实很简单,先定义一个枚举类型的变量,然后将属性的类型设置为枚举型的就可以了。下面我们来看一看例子: