Bear-Study-Hard

In 2008, I am absorbed in MOSS 2007, WF, ASP.NET 2.0, WPF, WCF and Wirte more Articles. ^_^
posts - 161, comments - 659, trackbacks - 118, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

CodeSmith基础(一)

Posted on 2005-12-19 13:57 努力学习的小熊 阅读(15298) 评论(25)  编辑 收藏 所属分类: CodeSmith使用
        请大家耐心看完所有的基础文章,前两篇网上发表的比较多,是CodeSmith英文帮助文档的第一篇,我后面写的基础是将其他所有的英文帮助全部翻译出来了,全部为本人手写翻译,希望对大家有所帮助

        创建好一个模板后第一步要指明这是一个C#语言的模板。
<%@ 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" %>
        如上边所示,在进行代码生成时,在CodeSmith Explorer中选择模板后生成代码的窗口中,变量的名称为NameSpace,类型是String,类别是Context,当用户选中这个属性时对于属性的描述Description。
        我们可以按照C#语言的语法去使用定义的变量,例如:
///////////////////////////////////////////////////////////////////////////////////////
// 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" %>
///////////////////////////////////////////////////////////////////////////////////////
// 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 
11using System;
12 
13namespace 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}

生成后的代码即可放入Visual Studio .NET中使用,我们使用CodeSmith的目的就是为了快速高效的开发。

Feedback

#1楼    回复  引用    

2006-03-20 23:32 by HF [未注册用户]
希望整理后打包为chm格式,收藏。

#2楼    回复  引用    

2006-05-31 13:33 by microsystem [未注册用户]
支持楼上的。
学习中。。。

#3楼    回复  引用  查看    

2006-07-21 19:29 by james.dong      
支持!!楼住
学习。。。

#4楼    回复  引用    

2006-12-25 14:58 by lubosun[匿名] [未注册用户]
从今天开始,偶也入门了
我用的是4.0的

还加了个CODESMITH群 :7722560

#5楼    回复  引用    

2007-03-14 14:10 by salough [未注册用户]
x想学习下。

#6楼    回复  引用  查看    

2007-03-16 14:34 by heqing      
学习中

#7楼    回复  引用    

2007-03-22 15:28 by 茄子 [未注册用户]
学习

#8楼    回复  引用    

2007-03-29 09:46 by shangguan [未注册用户]
学习中

#9楼    回复  引用    

2007-05-29 14:05 by cbf107 [未注册用户]
要是不顶一下楼主简直对不起良心

#10楼    回复  引用    

2007-05-31 16:11 by rock [未注册用户]
最近实习的公司很大部分就是用这个生成,我试着找了下google看有没学习资料没想到遇到lz 翻译的文章,真是冰天雪地裸体1080度旋转跪谢啊

#11楼    回复  引用    

2007-06-07 09:44 by prolive [未注册用户]
very good

#12楼    回复  引用  查看    

2007-06-11 14:47 by 陈熙尚      
讲得满详细的,谢谢了~~

#13楼    回复  引用    

2007-07-11 13:20 by jlxuqiang [未注册用户]
正在学习, 谢谢

#14楼    回复  引用  查看    

2007-08-18 00:16 by 9who      
good

#15楼    回复  引用    

2007-08-19 19:15 by 小豆豆 [未注册用户]
我认为讲的很好,但我不知道怎么抄做,~_~

#16楼    回复  引用    

2007-08-21 14:16 by lxl [未注册用户]
运行一个文件后,错误提示中提示另一个.cs文件中有错误,上哪找这个.cs文件。比如:执行文件UpdataStoredPro.cst提示在CacheUpdataStoredPro_cst.cs文件中有错误

#17楼    回复  引用    

2007-09-27 10:47 by laogao [未注册用户]
非常谢谢!

#18楼    回复  引用  查看    

2007-12-21 15:47 by DJustin      
呵呵。。怎么有图看着我也不会呢。。我要疯呐

#19楼    回复  引用    

2008-02-04 10:18 by sos [未注册用户]
极度支持!!!

#20楼    回复  引用    

2008-02-22 19:22 by dfdddd [未注册用户]

发现一个很好的DotNet 开发技术讨论群 mgroup70268@hotmail.com

#21楼    回复  引用    

2008-05-17 12:42 by 支持 [未注册用户]
支持支持支持支持支持

#22楼    回复  引用  查看    

2008-05-26 12:31 by com2008      
up
very basic and useful for most beginner

#23楼    回复  引用  查看    

2008-06-02 10:34 by 时间太快      
可以生成框架么??

#24楼 [楼主]   回复  引用  查看    

2008-06-03 08:32 by 努力学习的小熊      
@时间太快
需要你编写出框架的模板

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-01-16 15:14 编辑过


相关链接: