大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > CodeSmith 使用教程(6): 基本语法-声明和使用属性

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

关键词:CodeSmith使用教程  阅读(1162) 赞(48)

[摘要]本文主要介绍CodeSmith 使用教程(6): 基本语法-声明和使用属性,希望对你解决相关问题提供帮助。

属性参数的介绍:

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 中定义了一个属性用来为所生成的类设置可见性:

这可以通过定义一个枚举类型来实现:

<%@ Property Name="Accessibility" Type="AccessibilityEnum"
Category="Options" Description="The accessibility of the class to be generated." %>

由于属性可以定义为可选(Optional),因此在模板中需要检测某个的属性是否配置过,比如下面定义了一个属性为Optional


相关评论