在上一篇文章中,曾经提及“复杂属性”的概念。复杂属性的最大特征是属性的类型是本身具有属性(称为子属性)的类。通常情况下,复杂属性表现为3种形式:连字符形式属性、内部嵌套形式属性和内部嵌套形式默认属性。本文将介绍以上3种形式复杂属性的具体实现方法。
1. 实现连字符形式复杂属性
连字符形式属性是比较常见的复杂属性。我们常用的Font属性就是一个复杂属性,其包括多个子属性,如Bold、Name等。这种类型属性具有两种语法格式:一种是利用连字符语法,在控件的开始标记中保存子属性,例如,Font-Bold,Font-Name。另外一种格式是在控件的标记中保存子属性,例如,<font Bold=”true” />。后者比前者的可读性强。
实现连字符形式的复杂属性,必须对该复杂属性及其子属性实现设置指定的设计时元数据。下面首先列举了复杂属性实现过程中的相关元数据设置示例。请阅读下面的源代码。
\n
public class CustomerControl:WebControl{
[ DesignerSerializationVisibility( DesignerSerializationVisibility.Content), NotifyParentProperty(true) ]
public SizeInfo Size { …… }
}\n
[ DesignerSerializationVisibility( DesignerSerializationVisibility.Content), NotifyParentProperty(true) ]
public SizeInfo Size { …… }
}\n