各章中所遇到的不明白的attribute说明
1)ToolboxDataAttribute:指定当从 Visual Studio 等工具中的工具箱拖动自定义控件时为它生成的默认标记。
默认情况下,Visual Studio 等工具的可视化设计器创建空标记。当将控件从可视化设计器的工具箱中拖放到设计图面时,这是表示该控件在默认状态时的标记。若要指定初始默认值,控件可以利用此属性。可以使用此属性自定义初始 HTML 内容;当将控件从工具箱中拖动到窗体上时,这些内容将放入设计器。
示例:设置特定于MyLabel 的若干属性,出现的所有{0}都将由设计器替换为与 MyLabel 类关联的标记前缀。
2 public class MyLabel : Label
3 {
2)TagPrefixAttribute:定义在 Web 页中用于标识自定义控件的标记前缀。无法继承此类。
TagPrefixAttribute 定义为自定义控件指定标记前缀别名所需的程序集级属性。此属性由 Visual Studio .NET 等工具用来在使用自定义控件的 ASP.NET 页中自动生成 Register 指令。
此指令向命名空间注册标记前缀。而且,它指定自定义控件代码实现所在的程序集。有了此指令后,就可以在 Web 页中以声明方式使用自定义控件。
示例:
2 using System.Web;
3 using System.Web.UI;
4 using System.Web.UI.WebControls;
5
6 [assembly:TagPrefix("CustomControls", "custom")]
7 namespace CustomControls
8 {
第七章
3)DesignerSerializationVisibilityAttribute:指定一个属性是否和如何在代码中串行化,默认情况下,代码生成器序列化属性值。attribute允许重载默认行为,排除序列化机制中的属性,或者序列化属性的内容(例如子属性或者集合项)而不是属性自身。当序列化程序保持设计模式文档的可持续状态时,它通常会向组件的初始化方法中添加代码,以便保持已在设计时设置的属性值。如果尚未设置指示其他行为的特性,大多数基类型都会默认出现此情况。
DesignerSerializationVisibilityAttribute 允许您指示属性值是否为 Visible,是否应在初始化代码中保持;
Hidden,是否不应在初始化代码中保持,
是否由 Content 组成,它应具有为分配到该属性的对象的每个公共属性(而非隐藏属性)生成的初始化代码。
没有 DesignerSerializationVisibilityAttribute 的成员将被视为具有值为 Visible 的 DesignerSerializationVisibilityAttribute。如果可能,序列化程序会将标记为 Visible 的属性值序列化为该类型。
第九章
4)EditorBrowsableAttribute:指定某个属性或方法在编辑器中可以查看。不能继承此类。可以在可视化设计器或文本编辑器中使用该类来确定用户可见的内容。例如,Visual Studio .NET 中的智能感知引擎使用此特性来确定是否显示方法或属性。
示例:
下面的示例说明如何通过为 EditorBrowsableAttribute 特性设置适当的值来向智能感知隐藏控件的属性。在打开新应用程序,添加对控件的引用,并且声明该控件的实例之后,IntelliSense 不在下拉列表框中显示 Age 属性。
2 [EditorBrowsable(EditorBrowsableState.Never)]
3 public int Age
4 {
5 get { return ageval; }
6 set
7 {
8 if (!ageval.Equals(value))
9 {
10 ageval = value;
11 }
12 }
13 }
posted on 2006-01-05 15:45 ............. 阅读(133) 评论(0) 收藏 举报
浙公网安备 33010602011771号