CodeSmith快速向导(翻译)[1]

[入库:2006年2月23日] [更新:2007年3月25日]

本文简介:

CodeSmith快速向导
本文档的目的就是让你尽快得知道怎么通过CodeSimth从一个集合中产生你需要的完整程序。
在本向导里,我打算教你使用CodeSmith自带的模版,如何创建一个模版以及如何创建一个数据
库驱动模版。
 
CodeSimth是一个基于模版基础的代码生成工具,通过使用一个类似Asp.net的语法你可以创建和
定义一个用于产生代码的模版。你应该知道的一个重要的事情是:CodeSimth产生的代码是文本的,
因此你可以用它产生那些你没有必要编写的其他语言的代码或者文本。
 
在看如何创建你自己的模版之前,让我们先用下CodeSmith自带的模版.你可以通过:开始->程序->
CodeSmith->CodeSmith Explorer 来启动CodeSmith Explorer.启动后的界面如下图所示:
 
CodeSmith Explorer用来现实你可以使用的模版;默认的示例模版是被载入的。许多常用的模版在集合顶部,
双击ArArrayList.cst模版打开,将看到如下图所示:
 
这是一个模版属性面板,你可以查看和指定多个模版的属性。对于ArrayList模版我们需要指定我们想创建的
ArrayList的名称和我们想存储在ArrayList内item的类型。(我们也可以随意指定一个命名空间以使用ArrayList)本
例子里我们指定CarList作为ClassName,Car作为ItemType.添好属性之后单击Generate,模版将为你生成一个强类型
的ArrayList。
(译者注:我的CodeSmith v 2.6 professional 版点了Generate后没反应,你可以到CodeSmith Studio 里面试)
 
右面的窗口显示了使用为Car类生成一个强类型ArrayList模版后的输出结果,
接着你可以把他拷贝和复制到Visual Studio总,或者其他你用的编辑器中编译它。
 
(译者注:我的CodeSmith v 2.6 professional 版 点了Generate后没反应,你可以到CodeSmith Studio
里面试。开始-〉程序->CodeSimith v2.6->CodeSmith Studio,
右边面板,展开Collections->双击ArrayList.cst,填入
下面Properties面版里面的ClassName和ItemType值.->
点工具栏里的运行(小三角形))
 
编写你的第一个模版
CodeSmith和其他的代码生成工具相比较,最有价值的是:
你可以通过编写你需要生成的代码的代码生成模版,你可以
规定它代码如何生成,甚至指定在代码里面tabs和空格的
数量。你可以完全控制你的代码输出,其他的工具几乎不可能完成
这样的功能。
 
你用来生成模版的工具已经有一堆不同的功能,如果你正在使用个人版的
CodeSmith,你可以使用CodeSmith Studio,它有丰富的CodeSmith
模版环境。如果你没有使用个人版或者试用过期,那么你可以使用任何的文本编辑
器创建你的模版。
 
下面我们将创建一个简单的模版,它接受一些字符串然后创建一个包含了特殊注释头的
类。这是一个简单的例子,但它将展示CodeSmith模版创建的基础。我发现设计一个模
版最好的方式是首先创建一个模版的需要输出结果的代码,下面个就是模版将输出的内
容:

///////////////////////////////////////////////////////////////////////////////////////
// File: MyClass.cs
// Description: Enter summary here after generation.
// ---------------------
// Copyright ? 2003 Our Client
// ---------------------
// History
//    11/30/2003    Developer's Name    Original Version
///////////////////////////////////////////////////////////////////////////////////////
 
using System;
 
namespace MyNamespace
{
      /// <summary>
      /// Summary description for MyClass.
      /// </summary>
      public class MyClass
      {
            public MyClass()
            {
                  //
                  // TODO: Add constructor logic here
                  //
            }
      }
}

本文关键:CodeSmith快速向导(翻译)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top