请大家耐心看完所有的基础文章,前两篇网上发表的比较多,是CodeSmith英文帮助文档的第一篇,我后面写的基础是将其他所有的英文帮助全部翻译出来了,全部为本人手写翻译,希望对大家有所帮助![](https://i-blog.csdnimg.cn/blog_migrate/7d4c91434289917736376f2d16fa316f.gif)
创建好一个模板后第一步要指明这是一个C#语言的模板。
<
%@ CodeTemplate
Language
="C#"
TargetLanguage
="C#"
Description
="Generates a class including a special informational header"
%
>
第二步,我们要指明模板在生成代码时的属性,即生成代码需要的输入值变量。
我们可以按照C#语言的语法去使用定义的变量,例如:
例如下面这个例子模板使用了上面介绍的知识。Test.cst
生成后的代码即可放入Visual Studio .NET中使用,我们使用CodeSmith的目的就是为了快速高效的开发。
![](https://i-blog.csdnimg.cn/blog_migrate/7d4c91434289917736376f2d16fa316f.gif)
创建好一个模板后第一步要指明这是一个C#语言的模板。
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
第二步,我们要指明模板在生成代码时的属性,即生成代码需要的输入值变量。
<
%@ Property
Name
="NameSpace"
Type
="String"
Category ="Context"
Description ="The namespace to use for this class" % >
如上边所示,在进行代码生成时,在CodeSmith Explorer中选择模板后生成代码的窗口中,变量的名称为NameSpace,类型是String,类别是Context,当用户选中这个属性时对于属性的描述Description。Category ="Context"
Description ="The namespace to use for this class" % >
我们可以按照C#语言的语法去使用定义的变量,例如:
///
// File: <%=ClassName%>.cs
// File: <%=ClassName%>.cs
例如下面这个例子模板使用了上面介绍的知识。Test.cst
<
%@ 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" % >
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" % >
///
// File: <%=ClassName%>.cs
// Description: Enter summary here after generation.
// ---------------------
// Copyright © <%= DateTime.Now.Year %> Our Client
// ---------------------
// History
// <%= DateTime.Now.ToShortDateString() %> <%= DevelopersName%> Original Version
///
using System;
namespace <%= NameSpace %>
{
/// <summary>
/// Summary description for <%=ClassName %> .
/// </summary>
public class <%= ClassName %>
{
public <%= ClassName %> ()
{
//
// TODO: Add constructor logic here
//
}
}
}
// File: <%=ClassName%>.cs
// Description: Enter summary here after generation.
// ---------------------
// Copyright © <%= DateTime.Now.Year %> Our Client
// ---------------------
// History
// <%= DateTime.Now.ToShortDateString() %> <%= DevelopersName%> Original Version
///
using System;
namespace <%= NameSpace %>
{
/// <summary>
/// Summary description for <%=ClassName %> .
/// </summary>
public class <%= ClassName %>
{
public <%= ClassName %> ()
{
//
// TODO: Add constructor logic here
//
}
}
}
然后我们在CodeSmith Explorer中双击这个模板就会看到相应的属性界面,这里的属性均是我们在前边定义的属性。
按下Generate按钮生成,即可实现一个简单的类代码的生成。
1
///
2
//
File: MyClass.cs
3
//
Description: Enter summary here after generation.
4
//
---------------------
5
//
Copyright © 2003 Our Client
6
//
---------------------
7
//
History
8
//
12/2/2003 Mr. Smith Original Version
9
///
10
11
using
System;
12
13
namespace
MyNameSpace
14
{
15
/// <summary>
16
/// Summary description for MyClass.
17
/// </summary>
18
public class MyClass
19
{
20
public MyClass()
21
{
22
//
23
// TODO: Add constructor logic here
24
//
25
}
26
}
27
}
![](https://i-blog.csdnimg.cn/blog_migrate/4443f31b86527f6cfff1061e32065cd9.gif)
2
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
3
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
4
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
5
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
6
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
7
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
8
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
9
![](https://i-blog.csdnimg.cn/blog_migrate/4443f31b86527f6cfff1061e32065cd9.gif)
10
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
11
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
12
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
13
![](https://i-blog.csdnimg.cn/blog_migrate/a9ccef18c9fcf361a4962ac85910862a.gif)
14
![](https://i-blog.csdnimg.cn/blog_migrate/4443f31b86527f6cfff1061e32065cd9.gif)
15
![](https://i-blog.csdnimg.cn/blog_migrate/7cfe226acc4d2c2363e5743c4e6f2073.gif)
16
![](https://i-blog.csdnimg.cn/blog_migrate/261b3b2b5d2af54efe45674bcd56dce1.gif)
17
![](https://i-blog.csdnimg.cn/blog_migrate/e829b63066793fbd2e703d30b35fe755.gif)
18
![](https://i-blog.csdnimg.cn/blog_migrate/261b3b2b5d2af54efe45674bcd56dce1.gif)
19
![](https://i-blog.csdnimg.cn/blog_migrate/7cfe226acc4d2c2363e5743c4e6f2073.gif)
20
![](https://i-blog.csdnimg.cn/blog_migrate/261b3b2b5d2af54efe45674bcd56dce1.gif)
21
![](https://i-blog.csdnimg.cn/blog_migrate/7cfe226acc4d2c2363e5743c4e6f2073.gif)
22
![](https://i-blog.csdnimg.cn/blog_migrate/261b3b2b5d2af54efe45674bcd56dce1.gif)
23
![](https://i-blog.csdnimg.cn/blog_migrate/261b3b2b5d2af54efe45674bcd56dce1.gif)
24
![](https://i-blog.csdnimg.cn/blog_migrate/261b3b2b5d2af54efe45674bcd56dce1.gif)
25
![](https://i-blog.csdnimg.cn/blog_migrate/e829b63066793fbd2e703d30b35fe755.gif)
26
![](https://i-blog.csdnimg.cn/blog_migrate/e829b63066793fbd2e703d30b35fe755.gif)
27
![](https://i-blog.csdnimg.cn/blog_migrate/1028d5eb520833f2203f73ce2b28ddfa.gif)
生成后的代码即可放入Visual Studio .NET中使用,我们使用CodeSmith的目的就是为了快速高效的开发。