ASP.NET元数据属性

对于应用于服务器控件的元数据属性来说主要分为两类:

  • 设计期属性
  • 解析期属性

A.设计期属性

  为设计器、属性浏览器和其他设计期元素使用由设计期属性提供的元数据的作用如下:

  • 显示属性和事件
  • 执行设计期的序列化
  • 把用来实现设计期的功能的类与控件或者属性类型关联起来

A-1 System.ComponentModel.BindableAttribute

概要:告知属性浏览器绑定到属性是否有意义。带有Bindable(true)标记的属性能显示在从属性浏览器中装载的DataBinding对话框,

页面开发者利用它可以把属性和数据绑定表达式关联起来。

应用:属性

样例:[Bindable(true)]

参数类型:Boolean

默认值:false

注释:如果属性没有标记为Bindable(true),页面开发者仍可以通过在页面手动输入表达式来吧属性和一个数据绑定表达式关联起来。


A-2 System.ComponentModel.BrowsableAtrribute

概要:告知属性浏览器,是否在属性浏览器中显示属性或者事件

应用:属性和事件

样例:[Browsable(false)]

参数类型:Boolean

默认值:true

注释:属性浏览器默认地显示所有的公共属性和事件,仅当想重载默认行为时才使用这个属性。


A-3 System.ComponentModel.CategoryAttribute

概要:提供了一个分类名,以这个分类名来显示属性或事件。这个属性允许属性浏览器以逻辑分组的形式显示属性和事件。

应用:属性和事件

样例:[Category("Behavior")]

参数类型:string

默认值:"Default"

注释:这个属性可以被局部化。


A-4 System.ComponentModel.DefaultEventAttribute

概要:告知属性浏览器哪一个控件事件是默认事件,允许页面开发者双击设计界面中的控件,为默认事件编写事件处理代码。

应用:事件

样例:[DefaultEvent("Click")]

参数类型:string

默认值:无


A-5 System.ComponentModel.DefaultPropertyAttribute

概要:告知属性浏览器哪一个控件属性是默认属性。页面开发者在设计界面中选择控件时,该属性被属性浏览器突出显示。

应用:属性

样例:[DefaultProperty("TrackingMode")]

参数类型:string

默认值:无


A-6 System.ComponentModel.DescriptionAttribute

概要:提供一个简单的描述,在用户选择了属性或事件时,属性浏览器就显示这个描述属性和事件

应用:属性和事件

样例:[Description("The type of tracking to perform")]

参数类型:string

默认值:无

注释:这个属性可以被局部化


A-7 System.ComponentModel.EditorBrowsableAtrrttribute

概要:告知代码编辑器是否为属性、方法或事件显示对Intellisense的支持属性、方法和事件

应用:属性、方法和事件

样例:[EditorBrowsable(EditorBrowsableState.Never)]

参数类型:EditorBrowsableState枚举型具有一下几种值:

  • Advanced 仅当开发者想查看高级成员的时候才可以浏览,这种设置用于Microsoft .Net代码编译器
  • Always 在代码编辑里一直可以浏览
  • Never 在代码编辑器里一直不可以浏览

默认值:EditorBrowsableState.Always

注释:代码编辑器默认显示对Intellisense的支持。仅当想重载默认行为时才应用这个属性


以下是用于设计期序列化的属性

下列属性告知设计器如何去序列化控件及控件的属性。序列化是页面中对应用于设计视图中的更改生成HTML的过程。


A-8 System.ComponentModel.DefaultValueAttribute

概要:为属性提供一个默认值

应用:属性

样例:[DefaultValue(BorderStyle.NoSet)]

参数类型:任何的原始类型、枚举类型或者字符串文字类型。根据属性的标记为复杂属性提供默认值

默认值:无

注释:如果属性的类型具有一个关联的转换器,就可以为复杂属性提供一个默认值。在这种情况下,必须采取属性的双参数形式,

形式中第一个参数规定了属性的类型,第二个参数规定了这个值的字符串表示,例如[DefaultValue(typeof(Color),"Red")]


A-9 System.ComponentModel.DesignerSerializationVisibilityAttribute

概要:告知设计器是否序列化属性或属性内容。复杂属性含有内容--比如子属性或者集合项

应用:属性

样例:[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

参数类型:DesignerSerializationVisibility枚举型具有以下几种值:

  • Content 促使属性的内容(比如子属性或者集合项)序列化
  • Hidden 从序列化机制中隐藏属性
  • Visible 序列化属性值

默认值: DesignerSerializationVisibility.Visible

注释:默认情况下,代码生成器序列化属性值。属性允许重载默认行为,排除序列化机制中的属性,或者序列化属性的内容(例如子属性或者集合项)

而不是属性自身。


A-10 System.ComponentModel.NotifyParentPropertyAttribute

概要:告知属性浏览器从子属性到父属性或者到控件上传一个变更通知

应用:复杂属性和它们的子属性

样例:[NotifyParentProperty(true)]

参数类型:Boolean

默认值:false


A-11 System.Web.UI.PersistChildrenAttribute

概要:告知设计器嵌套在控件标签内的内容是否和子控件或者属性对应

应用:控件

样例:[PersistChildren(false)]

参数类型:Boolean

注释:WebControl标记为PersistChildren(false)]。如果控件派生于WebControl,仅当实现的控件的嵌套内容对应于子控件时,才需要重新应用这个属性


A-12 System.Web.UI.PersistenceModeAttribute

概要:告知设计器是否把属性保存到控件的标签上,或者把它作为一个嵌套属性进行保存

应用:属性

样例:[PersistenceMode(PersistenceMode.innerProperty)]

参数类型:

  • Attribute 使属性保存为控件标签上的一个属性
  • EnCodedInnerDefaultProperty 使属性作为控件标签中仅有的内容进行保存。内容是编码的HTML
  • InnerDefaultProperty 使属性作为控件标签中仅有的内容进行保存
  • innerProperty 使属性和控件的任何其他属性一起保存为控件标签中嵌套的内容

默认值:PersistenceMode.Attribute


A-11 System.Web.UI.TagPrefixAttribute

概要:告知设计器生成一个Register指令,把一个标签前缀映射到命名空间和配件中。当页面开发者把控件从工具箱拖放到设计界面时,这个指令在.aspx页面中生成

应用:包含有服务器控件的配件

样例:[assembly:TagPrefix("MSPress.ServerControls","msp")]

参数类型:第一个参数指定了命名空间,第二个参数允许为配件中的控件指定一个标签前缀(类似于asp)

注释:Register指令仅当页面开发者把控件从工具箱拖到设计界面中才生成。如果页面开发者手工地为页面中的控件添加HTML,指令不会生成。


下列属性使得可以将提供高级设计期功能的类与控件关联


A-14 System.ComponentModel.DesignerAttribute

概要:把设计器与控件关联

应用:控件

样例:[Designer(typeof(ScrollablePanelDesigner))]


A-15 System.ComponentModel.EditorAttribute

概要:把一个用户界面类型与类型或属性相关联,也把一个组件编辑器与一个控件关联

应用:类或者属性

样例:[Editor(typeof(MSPress,ServerControl.Design.StringFiliter),typeof(UITypeEditor))]

[Editor(typeof(MSPress,ServerControl.Design.MyLableComponentEditor),typeof(ComponentEditor))]

注释:第一个参数是编译器的类型,第二个参数是编译器的基类型。

 


 

A-16 System.ComponentModel.TypeConverterAttribute

概要:把一个类型转换器与类型或属性关联

应用:类或者属性

样例:[TypeConverter(typeof(MapCircleConverter))]


B.解析期属性

下列属性被页面解析器用于解析.aspx页面的语法,为相应页面中的类生成代码。

 


 

B-1 System.Web.UI.ControlBuilderAttribute

概要:将控件与自定义控件生成器关联

应用:控件

样例:[ControlBuilder(typeof(InnerTextlableControlBuilder))]

注释:ControlBuilder类和基类Control相关联,因此也和每个拂去其控件相关联。仅当想把自定义控件生成器和控件相关联时,才应用ControlBuilderAttribute

 


B-2 System.Web.UI.ParseChildrenAttribute

概要:通知解析器是否把控件标签内的嵌套内容翻译为属性或者子控件

应用:控件

样例:[ParseChildren(true)]

[ParseChildren(true,"HotSpots")]

注释:构造器接收一个布尔值,指示解析器是否把嵌套内容解析为属性。Control没有标记这个属性,就意味着解析器把嵌套内容当作子控件。WebControl标记为ParseChildren(true),因此解析器把嵌套内容当作属性。可以通

原文地址:https://www.cnblogs.com/suncms/p/2520726.html