如大家要轉載,請保留本人的著作權:
/*
*Description:asp.NET自訂伺服器控制項內部細節系列教程
*Auther:崇崇-天真的好藍
*MSN:chongchong2008@msn.com
*Dates:2007-05-20
*Copyright:ChongChong2008 YiChang HuBei China
*/
四 伺服器控制項相關中繼資料Attribute
1.設計期Attribute
設計期Attribute對於控制項在視覺化設計工具內正確運行是很重要的.設計器,屬性瀏覽器和其它的設計期元素使用由設計期attribute提供的中繼資料的作用如下:
顯示內容和事件
執行設計期的序列化
把用來實現設計期的功能的類與控制項或者屬性類型關聯起來
1.1 顯示內容和事件的Attribute
System.ComponentModel.BindableAttribute
描述 : 告知屬性瀏覽器綁定資料到屬性是否有意義,帶有Bindable(true)標記的屬效能顯示在從屬性瀏覽器中裝載的DataBinding對話方塊裡.
應用 : 只應用於屬性
System.ComponentModel.BrowsableAttribute
描述 : 告知屬性瀏覽器是否在屬性瀏覽器中顯示內容或者事件,屬性瀏覽器預設顯示所有公用屬性和事件
應用 : 屬性和事件
System.ComponentModel.CategoryAttribute
描述 : 提供一個分類名,以這個分類名來顯示內容或事件.
應用 : 屬性和事件
System.ComponentModel.DefaultEventAttribute
描述 : 告知屬性瀏覽器哪一個控制項事件是預設事件.允許頁面開發人員雙擊設計介面中的控制項,為預設事件編寫事件處理代碼
應用 : 只應用事件
System.ComponentModel.DefaultPropertyAttribute
描述 : 告知屬性瀏覽器哪一個控制項屬性是預設屬性.允許頁面開發人員在計介面中選擇控制項時,該屬性被屬性瀏覽器反白
應用 : 只應用屬性
System.ComponentModel.DescriptionAttribute
描述 : 提供一個簡要的描述資訊.在使用者選擇了屬性或事件時,屬性瀏覽器就顯示這個描述
應用 : 屬性和事件
System.ComponentModel.EditorBrowsableAttribute
描述 : 告知代碼編輯器是否為屬性,方法或事件顯示對InterlliSense的支援
應用 : 屬性,方法和事件
1.2 設計期的序列化的Attribute
System.ComponentModel.DefaultValueAttribute
描述 : 為屬性提供一個預設值
應用 : 屬性
System.ComponentModel.DesignerSerializationVisibilityAttribute
描述 : 告知設計器是否序列化屬性或者屬性的內容,複雜屬性含有內容,如子屬性或者集合項目.DesignerSerializationVisibility具有以下幾種值:
Content - 促使屬性的內容(如子屬性或者集合項目)序列化
Hidden - 從序列化機制中隱藏屬性
Visible - 序列化屬性值
應用 : 屬性
System.ComponentModel.NotifyParentPropertyAttribute
描述 : 告知屬性瀏覽器從子屬性到父屬性或者到控制項上傳一個更改通知
應用 : 複雜屬性和它們的子屬性
System.Web.UI.PersistChildrenAttribute
描述 : 告知設計器嵌套在控制項標籤內的內容是否和子控或者屬性對應.WebControl標記為PersistChildren(false)
應用 : 控制項
System.Web.UI.PersistenceModeAttribute
描述 : 告知設計器是否把屬性儲存到控制項的標籤上,或者把它作為一個嵌套屬性進行儲存.
PersistenceMode枚舉類型具有以下幾個值:
Attribute - 使屬性儲存為控制項標籤上的一個attribute
EncodeInnerDefaultProperty - 使屬性作為控制項標籤中僅有的內容進行儲存.內容是編碼的HTML
InnerProperty - 使屬性作為控制項標籤中僅有的內容進行儲存.
InnerDefaultProperty - 使屬性和控制項的任何其它屬性一起儲存為控制項標籤中嵌套的內容
應用 : 屬性
System.Web.UI.TagPrefixAttribute
描述 : 告知設計器產生一個Register指令,把一個標籤首碼映射到命名空間和配件中.當頁面開發人員把控制項從工具箱拖放到設計介面時,這個指令就在.aspx頁面沖產生
應用 : 包含伺服器控制項的配件
1.3 提供進階設計期功能的相關聯類別的Attribute
System.ComponentModel.DesignerAttribute
描述 : 把設計器與控制項關聯
應用 : 控制項
System.ComponentModel.EditorAttribute
描述 : 把一個使用者介面類型編輯器與類型或屬性相關聯,也把一個組件編輯器與控制項相關聯
應用 : 類或屬性
System.ComponentModel.TypeConverterAttribute
描述 : 把一個類型轉換器與類型或屬性相關聯
應用 : 類或屬性
2.解析期Attribute
用於被頁面解析器解析.aspx頁面的文法,為相應頁面中的類產生代碼
System.Web.UI.ControlBuilderAttribute
描述 : 將控制項與自訂的控制項產生器相關聯
應用 : 類或屬性
System.Web.UI.ParseChildrenAttribute
描述 : 通知解析器是否把控制項標籤內的嵌套內容翻譯為屬性或者子控制項。
Control沒有標記這個屬性,意味著解析器把嵌套內容當作子控制項。
WebControl標記為ParseChildren(true),因此解析器把嵌套內容當作屬性
這個Attribute的兩參數形式中的第二個參數是屬性名稱,使用兩參數形式時,把控制項標籤內的嵌套內容必須和第二個參數設定的屬性一致
應用 : 控制項
System.Web.UI.TemplateContainerAttribute
描述 : 將ITemplate屬性的容器控制項的類型通知解析器。解析器把這個類型作為資料繫結運算式中的Container的確切類型
應用 : 雷行為ITemplate的屬性