下载:

官方网站:http://www.codesmithtools.com/

5.0破解文件下载:http://kewlshare.com/dl/0538fcf454d3/CodeSmith.5.0.Professional.Incl.Patch.DTCG.rar.html

 

资料:

http://blog.sina.com.cn/s/articlelist_1229294631_3_1.html

http://www.cnblogs.com/Terrylee/category/44974.html

CodeSmith生成代码的基础为数据库,生成代码依赖于你编写的模板。

模板分成三部分:声明,输出,函数。

声明部分包括

CodeTemplate,Property,Assembly,Import,Register,Map,XmlProperty。

CodeTemplate声明:

CodeTemplate声明的属性

Language

语言

编写输出和函数部分使用的语言

TargetLanguage

目标语言

生成代码的语言

Src

源文件

模板中使用的类文件名称

Inherits

继承的类

模板继承自的类名

Debug

调试

是否需要调试

Description

描述

简介

ResponseEncoding

输出编码格式

设置输出内容的编码格式

LinePragmas:设置为True,模板的错误将被指向到模板的源代码。设置为False,模板的错误将被指向到编译的源代码。

CodeTemplate声明为必选声明。

Language:一般可以使用C#,VB,JScript等语言,此处要慎重,尽量选择熟悉的语言。

TargetLanguage:通过模板生成的代码的语言,一般来说,无关紧要,但还是尽量实事求是的写吧,因为CodeSmith需要这个属性来给代码着色。

Src和Inherits:这两个Src写的是源文件名称路径,Inherits写的是继承的父类名称。这两个属性可以不设置。

Debug:可选True或False,用来决定是否调试,简单模板一般设置为False。

ResponseEncoding:如果要让你的模板生成的内容中包括中文,那么设置这个属性为UTF-8。

例:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Src="" Inherits="" Debug="False" Description="产生实体类" ResponseEncoding="UTF-8" %>

Property声明:

属性被用做在模板运行时声明一个使用的参数

Name

名称

模版使用的参数的名称,类似变量名称

Type

类型

类似变量类型,System.String,String都行

Default

默认值

默认值

Optional

是否可选

Bool类型,True:可选,False:必选

Category

分组名称

Description

描述

在属性面板中对于这个属性的描述

Type:参数类型可以是任何.NET有效的数据类型,例如简单的String类型或者是CodeSmith的SchemaExplorer.DatabaseSchema类型。注意,类型必须是基类库的类型,例如用String或者Int32代替string和int。

Category:用来说明这个属性在CodeSmith Explorer的属性面板中显示成什么类型,例如下拉选择、直接输入等。

Optional:设置这个属性是否是必须的,设置为True表明这个参数值可有可无,设置为False则这个参数必须有值。

Editor:表明在属性面板中输入这个属性的值时使用何种GUI(图形界面编辑器)编辑器。

EditorBase:编辑器使用的基本类型,如果没有被说明,UITypeEditor为默认编辑器。

Serializer:The serializer parameter specifies the IPropertySerializer type to use when serializing the properties values. This is equivalent to using a ....

例:

<%@ Property Name="NameSpace" Default="BLL" Type="String" Category="Context" Description="业务层" %>

<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="表名" %>

Assembly声明:

Assembly声明属性,Assembley声明类似.Net工程中的引用程序集。

Name

名称

程序集名称,不包括.dll后缀

组件的参数:

Name:需要引用组件的名称,组建必须存在于Global Assembly Cache,与CodeSmith在同一路径下或与模版文件在同一路径下。

Src:要包含文件的相对路径。

例:<%@ Assembly Name="SchemaExplorer" %>//加载使用访问数据库的组件SchemaExplorer

用作在模版中引用一个外部部组件,或者包含一个编译好的源文件。

<%@ Assembly Src="MySourceFile.cs" %>

CodeSmith自动加载一些不同的组件:System, System.Diagnostics, System.ComponentModel, Microsoft.VisualBasic, CodeSmith.Engine

Import声明:

Import声明属性,类似.Net工程中的使用命名空间,类似于using System

Name

名称

命名空间

例:<%@ Import Namespace="SchemaExplorer" %>//声明其使用的命名空间

Register声明:

这个属性通常被用作引入另一个模版文件并与当前的模版文件同时被编译。这是一种使用子模版的交互方法

Name

名称

将模板作为一个类的别名使用

Template

模板名称

模板文件的全路径

注册的参数:

Name:代表被引入的模版的名称。它可以被用作创建一个模版的实例。

Template:被引入模版文件的相对路径,它可以与当前的模版一起被动态的编译。

MergeProperties:设置成True时,所有被引用的面板的属性将被动态的添加到当前模版中。

ExcludePorperties:当使用MergeProperties时,你可能不需要某些属性被添加到当前模版中。将不需要的属性以逗号分隔放在这里,*号可以被用作通配符使用。

例:<%@ Register Name="MySubTemplate" Template="MySubTemplate.cst" MergeProperties="True" ExcludeProperties="SomeExcludedPropertyName,SomeProperties*" %>

XML属性声明(XmlProperty Directive)

Name:名称。

Schema:这个参数用来指定一个XSD文件,创建一个强类型对象模型。如果这个计划被指定,编译器会尝试分析这个XSD文件并为这个计划生成一个强类型对象模型,这样可以在模版中使用强类型和智能与XML协同工作。如果这个计划没有被设定,这个参数将为XmlDocument类型并且将使用XML DOM去导航到一个XML内容并生成代码。

Category:在CodeSmith属性面板中的类别。

Description:描述。

Optional:这个参数是否是必须的,如果设置为True,则参数不是必须的,反之False则为必须的。在设置为False时,如果用户没有提供参数则CodeSmith不能继续运行。

例:<%@ XmlProperty Name="EntityMap" Schema="EntityMap.xsd" Optional="False" Category="Context" Description="EntityMap XML file to base the output on." %>

输出部分

这个部分的内容最终会到达最终生成的源代码文件,所以在编写这部分内容的时候,一定要对将要生成的内容的结构十分熟悉和了解。

输出部分可以划分为两部分:

1. 固定内容:指的是没有在<%%>中间包括的内容。必输出

2.     可变内容:在<%%>和<%=%>中间包括的内容。根据逻辑输出

在<%%>中间可以填写的内容为:在模板声明部分的CodeTemplate声明中Language属性所指的语言编写的任何内容,可以定义变量,常量,可以使用各种控制结构,几乎是任何语句都可以,因为CodeSmith毕竟是架构在.Net体系结构中的。

例子:

<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description="Template description here." %>
<%@ Property Name="TestString" Type="System.String" Default="SomeValue" Optional="True" Category="Strings" Description="This is a sample string property." %>
<%for(int i=0;i<10;i++)
{
 Response.WriteLine("第"+i.ToString()+"次:"+TestString);
}
%>

第0次:aaaaa
第1次:aaaaa
第2次:aaaaa
第3次:aaaaa
第4次:aaaaa
第5次:aaaaa
第6次:aaaaa
第7次:aaaaa
第8次:aaaaa
第9次:aaaaa

对象借用了Response的壳子,它的魂却是控制台应用程序中常用的输出输入对象Console。

<%for(int i=0;i<10;i++)%>
<%{%>
第<%Response.Write(i);%>次:<%Response.Write(TestString);%>
<%}%>

<%=变量名称%>或<%=常量名称%>(注意此处的<%=%>中没有“分号”)

函数部分

这部分可以放一些在输出部分使用的函数,函数当中也可以使用在声明部分定义的参数。

函数部分必须包括在<script runat="template"><script>

public int Sum(int x,int y)

{

return x+y;

}

在这个标签中可以包含一段代码,但是他不直接影响输出的模版。可以放置一些比较有帮助的方法在其中,然后在模版的各个地方可以调用它。在脚本标签中必须包含这个参数runat=”template”,否则他会被处理成普通文本。

其它部分

Include标签

和ASP.NET一样,可以在模版中包含一些文本文件,但同ASP.NET一样它也不是总能达到你的目标。

例:

<!--#include file="myfile.inc"-->

有时在多个模版中引用一个组件中的功能,调用其中的方法,这时我们引用组件。但有些情况下,适用Include标签可以得到更好的效果。

Comment标签

注释标签,在前边已经做过介绍。

例:

CodeSmith Object

CodeSimth中有许多对象可以在编写模板的时候使用,这里将介绍这些对象的一些公用方法和属性以及怎么使用它们。

转载于:https://www.cnblogs.com/astar/archive/2008/10/13/1309738.html

CodeSmith(1):使用和语法简介相关推荐

  1. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介...

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

  2. 一步步编写操作系统 77 内联汇编与ATT语法简介

    内联汇编 之前和大家介绍过了一种汇编方法,就是C代码和汇编代码分别编译,最后通过链接的方式结合在一起形成可执行文件. 另一种方式就是在C代码中直接嵌入汇编语言,强大的GCC无所不能,咱们本节要学习的就 ...

  3. javascript语法_JavaScript传播语法简介

    javascript语法 by Ashay Mandwarya ?️?? 由Ashay Mandwarya提供吗? JavaScript传播语法简介 (An introduction to Sprea ...

  4. [EasyHexo 专栏] #1 - Markdown 编辑器推荐与语法简介

    EasyHexo? 轻松使用 Hexo 搭建你的博客 EasyHexo GitHub Repo? EasyHexo/Easy-Hexo 本篇作者:ChungZH 前言 Hexo 默认是使用 Markd ...

  5. PostgreSQL修炼之道:从小工到专家. 3.1 SQL语句语法简介

    3.1 SQL语句语法简介 3.1.1 语句的分类 SQL命令一般分为DQL.DML.DDL几类. DQL:数据查询语句,基本就是SELECT查询命令,用于数据查询. DML:Data Manipul ...

  6. 正则表达式语法简介说明

    转自: 正则表达式语法简介说明 正则表达式通过自己的一套模式规则,可从字符串中匹配出相应的字符串,那么正则表达式的语法是怎样的呢? 下文将一一道来,如下所示: 字符 备注说明 \ 将下一字符标记为特殊 ...

  7. smali基本语法简介(与java对比)

    smali基本语法简介(与java对比) 1.smali和java基本数据类型对比 smali java B byte S short I int J long F float D double C ...

  8. shell 语法简介(转载)

    一.基本语法 1.1.shell文件开头 shell文件必须以下面的行开始(必须方在文件的第一行):  #!/bin/sh  符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使 ...

  9. 【机器学习】Rasa NLU以及Rasa Core概念和语法简介(超详细必看)

    觉得有帮助请点赞关注收藏~~~ 一.Rasa简介 Rasa是一个开源机器学习框架,可以用于构建基于文本和语音的对话驱动型自动化智能客服助手,能够克服传统客服的部分缺陷,在Windows操作系统环境下, ...

  10. tcsh shell 基本语法简介

    1.Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 编程跟 JavaScript.php ...

最新文章

  1. win8安装11gR2[INS-13001] 环境不满足最低要求
  2. Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办?
  3. java聊天程序源代码_java聊天程序源代码
  4. aes sample java,python-AES加密java解密
  5. 工作总结书写的意义及要求
  6. 无法使用前导 .. 在顶级目录上退出
  7. 定题信息服务是从什么角度_信息管理练习题2
  8. 原版英文书籍《Linux命令行》阅读记录7 | 原版英文书籍《Linux命令行》阅读记录7 | 一些键盘按键技巧...
  9. 萌新学python(输入与输出)
  10. 一文理清散乱的物联网里开发者必须关注的技术!
  11. Linux自动注销登录的帐户
  12. CentOS 6.5上安装Confluence 5.4.4
  13. mysql 黑框框 叫什么_Coreldraw菜单黑框框/黑块解决办法
  14. IEnumerator和IEnumerable
  15. ansys workbench汉化教程_【软件下载】——“冰点文库”使用教程及配套安装包(无广告插件)...
  16. Linux环境下向github上传代码(生成token、生成本地密钥)
  17. [Tushare] 通过复权因子计算前复权价格、后复权价格
  18. 【渝粤教育】国家开放大学2019年春季 2444酒店管理概论 参考试题
  19. Antd点击select选择框,页面滚动,选项跟着滚动
  20. 在Spyder安装xlrd插件

热门文章

  1. spring-boot-starter-data-jpa详细使用介绍
  2. 索尼Xperia X Performance解锁、刷TWRP、刷原厂固件、刷安卓8.1AOSP
  3. php市场调查问卷模板,市场调查问卷范文
  4. 在线教育直播平台对比(钉钉/保利威/小鹅通)
  5. excel多元线性拟合_使用Excel数据分析工具进行多元回归分析的方法
  6. 未来智慧园区白皮书(2022年) 附下载
  7. 不用找,你想要的魏体字体素材都在这里
  8. Windows 10 Office文件图标异常处理(Word | Excel | Powerpoint图标白色、右键新建找不到文件)
  9. 使用多种算法挖掘Alexa域名数据
  10. 【转载】教你怎么将centos7打造成桌面系统