CodeSmith教程(6) 基本语法-声明和使用属性

CodeSmith的核心是模板,而使模板具有活力的就是属性,通过定义属性从而使代码模板能够根据配置生成所需的代码。在使 用代码模板时首先也必须给模板定义的属性定义值才能使用CodeSmith通过模板产生代码。有些属性具有缺省值,这些属性可以 不需要配置。

模板中的属性通过Property指令来定义:

<%@ Property Name="ClassName" Type="String" 

Default="Class1" Category="Context"   Description="The name of the class to generate" Optional="true" %

>

属性参数的介绍:

Name:模版使用的参数的名称。

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

Default:设置默认值。

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

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

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

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

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

Serializer 定义用于属性的IPropertySerializer类型。

OnChanged 为属性发生变化时定义事件处理代码。

DeepLoad 只用在SchemaExplorer对象,当为True,SchemaExplorer一 次性取得有关数据库Schema的所有信息而避免多次查询数据库。

在配置属性时,每个属性根据其类型和Editor不同而使 用不同的配置界面,对应一些简单的类型,比如Int,String可以直接编辑,而对于数据库类型可以使用Schema Explorer, CodeSmith预先定义了一些属性编辑器,此外也可以通过自定义为某些特殊的属性类型定义新的属性编辑器,这在后面再介绍。 通常情况下无需自定义。

在某些情况下,如果所定义的属性值为一个列表中的某个值,比如在CodeSmith自带的模板 SortedList.cst 中定义了一个属性用来为所生成的类设置可见性:

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索编辑器
, 参数
, 模板
, 属性
, 类型
, 属性编辑器
CodeSmith
英语基本语法、c 基本语法、php基本语法、python基本语法、js基本语法,以便于您获取更多的相关知识。

时间: 2024-08-05 18:01:18

CodeSmith教程(6) 基本语法-声明和使用属性的相关文章

CodeSmith教程(4) 基本语法-CodeTemplate 指令

前面的几篇介绍了使用CodeSmith模板自动生成代码和编写代码模板的基本知识.也说过CodeSmith最核心的部分是代码模板 ,从本篇开始介绍CodeSmith代码模板的基本语法,对于Asp.Net程序员来说,可以说是碰到老朋友了:-) ,CodeSmith 的代码模 板和Asp.Net Page 几乎如出一辙. 本篇介绍CodeTemplate指令,这个是模板中唯一必须的声明,包含一些模板特殊的属 性,包含模板使用的语言.生成的语言和一些对于模板的描述.比如: <%@ CodeTemplat

CodeSmith教程(7) 基本语法-转义Asp.Net标记

由于CodeSmith的代码模板使用了和Asp.Net类似的语法,因此如果要使用CodeSmith 模板生成Asp.Net脚本时比如"<%" 就碰到了问题, <% 会被CodeSmith解释成CodeSmith自己的标记,因此需要使用转义标签来代替需要插入到Asp.Net代码中的 标签. 具体方法是使用 <%% 来替换需要生成的Asp.Net中的 <%标记. 比如我们要生成如下的Asp.Net代码 : <asp:FormView ID="Form

CodeSmith教程(5) 基本语法-使用注释

在模板中可以添加注释,注释通过 <%–和–%>块来定义,注释可以有多行.比如: <%-- Name: TestHarness.cst Description: Generates a standard test harness for an object --%> 如果在代码模板中使用C#,VB.Net或是JavaScripts脚本,可以使用所使用语言对应的注释,比如C#语言可以 使用 // 或 /* commented */. 如果需要在输出的文件中使用注释,和其它要输出的内容一

kotlin 官方学习教程之基础语法详解

kotlin 官方学习教程之基础语法详解 Google 在今天的举行了 I/O 大会,大会主要主要展示内有容 Android O(Android 8.0)系统.Google Assistant 语音助手.Google 智能音箱.人工智能.机器学习.虚拟现实等.作为一个 Android 开发者,我关心的当然是 Android O(Android 8.0)系统了,那么关于 Android O 系统的一个重要消息是全面支持 Kotlin 编程语言,使得 Kotlin 成为了 Android 开发的官方

css模版教程全面自定义模板必备之css属性知识

核心提示:css模版教程,自定义模板必备之css属性知识. 该表只列出常用的CSS属性,及简要介绍其主要功能,若要了解各所有属性和具体的用法,请参考相关书籍 属 性 名 称 属性功能及其取值 用 法 说 明 与 范 例 颜色与背景类 color 设置文字颜色#rgb#rrggbbrgb(255,255,255)rgb(100%,100%,100%) H1{color:red}H1{color:#f00}H1{color:#ff0000}H1{color:rgb(255,0,0)}H1{color

CodeSmith教程(1) 概述

前面正在介绍hibernate的开发教程,提到hibernate 在.Net 平台上相应的ORM工具为NHibernate ,使用NHibernate 就不能 不提到CodeSmith. CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文 本.与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构.使用 CodeSmith,可以生成包括 简单的强类型集合和完整应用程序在内的任何东西.当您生成应用程序时,

Go语言入门教程之基础语法快速入门_Golang

Go语言是一个开源的,为创建简单的,快速的,可靠的软件而设计的语言. Go语言实(示)例教程,通过过实例加注释的方式来介绍Go语言的用法. Hello World 第一个程序会输出"hello world"消息.源代码如下: 复制代码 代码如下: package main import "fmt" func main() {     fmt.Println("hello world") } //通过go run来运行Go程序 $ go run h

CodeSmith教程(8) CodeTemplate对象

在使用代码模板产生代码时,CodeSmith引擎背后使用了不少对象来帮助代码的生成,其中常用的有 CodeTempate (类似于Asp.Net的Page类) Progress 用于显示代码生成的进度 CodeTemplateInfo 可以返回关于当前模板自身 的一些信息. 本篇介绍CodeTemplate ,CodeTemplate代表了由CodeSmith引擎处理的代码模板对象,可以通过CodeTemplate对象直接和 CodeSmith引擎交互,比如: 使用 GetFileName 修改

CodeSmith教程(3) 自动生成Yii Framework ActiveRecord

上例介绍了使用CodeSmith编写代码模板的基本方法,本例实现一个较为实用的代码模板,通过数据库自动为Yii Framework 生成所需要的ActiveRecord 类. 本例通过修改Yii Framework 开发教程(26) 数据库-Active Record示例 ,原例是手工编写 Employee.php ActiveRecord. 首先为工程添加一个C#项目(任意类型,我们只是利用这个项目来包含CodeSmith项目) ,然后添加一个CodeSmith项目和一个CodeSmith模板