程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> CodeSmith教程(6) 基本語法-聲明和使用屬性

CodeSmith教程(6) 基本語法-聲明和使用屬性

編輯:關於ASP.NET

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 中定義了一個屬性用來為所生成的類設置可見性:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved