代码改变世界

随笔分类 -CodeSmith使用

CodeSmith应用(四):实现选择路径对话框

2006-01-12 11:24 by 努力学习的小熊, 4158 阅读, 收藏, 编辑
首先我们要添加命名空间。然后我们在模板中自定义一个属性,用来表示要存储的路径。其中我们使用了this.CodeTemplateInfo.DirectoryName得到当前模版所在路径作为默认路径。 private string _outputDirectory = String.Empty;[Editor(typeof(System.Windows.Forms.Design.FolderName...

CodeSmith应用(三)

2005-12-29 15:03 by 努力学习的小熊, 3451 阅读, 收藏, 编辑
今天在微软的网站看到的一篇使用CodeSmith的例子,现在写出来大家一起研究研究。 首先,我还是要简要介绍一下其中用到的基础知识。 1.在模板中的代码区中(或)可以使用.NET中的一些类和方法。但是就像和.NET项目中一样需要添加应用,就像C#中的using 2.在脚本区域中可以编写生成模板时使用到的函数,其中的语言根据在声明模板时...

CodeSmith应用(二)

2005-12-28 15:39 by 努力学习的小熊, 10427 阅读, 收藏, 编辑
今天又根据CodeSmith的几个基本组件写出了基于表生成删除功能的存储过程代码生成模板。 昨天觉得添加的存储过程模板写的比较简单,今天准备详细介绍一下这个删除的模板。 首先介绍我们使用到的一个教本函数GetSqlParameterStatement(ColumnSchema column),其函数代码如下: 1public string GetSql...

CodeSmith应用(一)

2005-12-27 17:51 by 努力学习的小熊, 8059 阅读, 收藏, 编辑
这个例子仅是一个简单的应用,在我翻译并学习完CodeSmith的英文帮助文档后,对CodeSmith有了一定的了解,开始着手编写一些CodeSmith应用模板,今天按照最早提到的例子自行编写了一个基于表的添加存储过程的生成模板。具体语法前面基础中已做过详细解释这里仅是一个小综合应用的例子,望对大家学习CodeSmith有很好的帮助。我的同事也写了几个CodeSmith的技巧的文章h...

CodeSmith基础(八)

2005-12-26 12:22 by 努力学习的小熊, 10169 阅读, 收藏, 编辑
编写CodeSmith自定义属性的编辑器(Writing Custom Property Editors) 当你开始编写自定义的CodeSmith模板时,很可能对于使用它的strings或integers属性很满意,但有时你会发现需要创建一个不同类型的属性,可能是一个自定义的类型或者是.NET framework中但是在属性面板中没有提供的类型。在模板中去作这些很简...

CodeSmith基础(七)

2005-12-23 12:38 by 努力学习的小熊, 9166 阅读, 收藏, 编辑
本文翻译的内容为CodeSmith控制台指南。 很多人仅仅知道CodeSmith像一个图形应用程序,或者可能是一个Visual Studio的附件,但是通过CodeSmith的控制台应用程序还有好多其他的使用方法。控制台应用程序是很有价值的,因为可以通过它去生成脚本,或者其他一些自动工具。这篇文档的目的就是要告诉你怎样使用它的控制台应用程序并且如何去定义变量和参数。 Basic Usage 大多...

CodeSmith基础(六)

2005-12-22 11:22 by 努力学习的小熊, 11573 阅读, 收藏, 编辑
本文主要介绍CodeSmith对象。 CodeSmith Object CodeSimth中有许多对象可以在编写模板的时候使用,这里将介绍这些对象的一些公用方法和属性以及怎么使用它们。 代码模板对象(CodeTemplate Object)在模板中,“this”(或者“Me”在VB.NET中)在当前模板中代码代码模板对象。 代码模板的方法(CodeTem...

CodeSmith基础(五)

2005-12-21 13:35 by 努力学习的小熊, 11549 阅读, 收藏, 编辑
本篇将介绍CodeSmith的模版中的语法。代码标签 标签 可以放置任意数量的代码在其中,但并不能直接输出到模版中。 标签 在模版中输出一个字符串。上例中的 脚本标签 在这个标签中可以包含一段代码,但是他不直接影响输出的模版。可以放置一些比较有帮助的方法在其中,然后在模版的各个地方可以调用它。在脚本标签中必须包含这个参数runat=”template”,否则...

CodeSmith基础(四)

2005-12-20 17:14 by 努力学习的小熊, 15821 阅读, 收藏, 编辑
本文是翻译的第四篇,内容为在CodeSmith中使用的语法和标签的参考。CodeSmith模板语法参考 本文的目的是在编写一个CodeSmith模板时遇到的各种类型的变量和对象提供参考。本文的目的不是要介绍CodeSmith,如果您想快速了解CodeSmith请查看我翻译的CodeSmith基础(一)和CodeSmith基础(二)。标签 标签一般出现在...

CodeSmith基础(三)

2005-12-19 17:49 by 努力学习的小熊, 22830 阅读, 收藏, 编辑
这里写的东东都是从CodeSmith自带的帮助文档中FAQ里学到的东东 1.如何在模板中添加注释 CodeSmith: VB.NET: C#: 2.创建一个可以下拉选择的属性 首先定义一个枚举类型的变量,然后将属性的类型设置为枚举型 ...

CodeSmith基础(二)

2005-12-19 14:37 by 努力学习的小熊, 30050 阅读, 收藏, 编辑
本文将介绍CodeSmith与数据库进行交互生成相应的存储过程,本例使用的数据库为SQL Server 2000。 在与数据库进行交互时,我们使用到了一个CodeSmith自带的组件SchemaExplorer,利用这个组件我们可以访问数据库的数据表、存储过程、视图等,并可以得到相应的数据类型、标识列、列的(字段)名称等信息。 下面这个例子是教我们如何生...

CodeSmith基础(一)

2005-12-19 13:57 by 努力学习的小熊, 61959 阅读, 收藏, 编辑
请大家耐心看完所有的基础文章,前两篇网上发表的比较多,是CodeSmith英文帮助文档的第一篇,我后面写的基础是将其他所有的英文帮助全部翻译出来了,全部为本人手写翻译,希望对大家有所帮助 创建好一个模板后第一步要指明这是一个C#语言的模板。 第二步,我们要指明模板在生成代码时的属性,即生成代码需要的输入值变量。 如上边所示,在进行代码生...

CodeSmith版本注册错误的解决办法

2005-12-13 15:54 by 努力学习的小熊, 4142 阅读, 收藏, 编辑
我使用的是CodeSmith3.0版本的,由于在输入注册码的时候,误将Standard版本的注册码输入到了Professional的版本中,导致CodeSmith不能使用。 在安装目录vsnet2003_register.bat文件里发现这么一句 SET SHAREDLICENSESDIR=%PROGRAMFILES%\Common Fi...