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基本语法,以便于您获取更多的相关知识。