服务器控件开发基础----应用设计期Attribute

【说明--2006-5-17】
这篇搜集的内容是前阵子在实践中匆忙用到的东西;今天看了本电子书,有一章节说道了这方面的信息,正式的名称成是“设计期Attribute”,在此,我也觉着更好理解一点,能从标题知道文章的主题内容。

开发服务器控件,有很多需要学习的;比如说:属性;
这里我就先学习属性。
在控件编程的过程中,使用vs2003开发,会给你的代码写出如下字符:

1[DefaultProperty("Text"),ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
2[Bindable(true),Category("Appearance"),DefaultValue("")]

无论是1还是2可能让初学者感到疑惑,这是什么语法??为什么这么写??有什么作用??
至少我这么想的。

查阅MSDN资料发现:这个其实是一个类名空间中的一部分,这个命名空间是:System.ComponentModel。
在这个空间里有很多东西可以使用:
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemcomponentmodelbindableattributeclasstopic.asp
它里面的属性格式:XXAttribute。
慢慢学习其中的代码,举一个小小的例子:

BindableAttribute 类

指定属性是否通常用于绑定。

有关此类型所有成员的列表,请参阅 BindableAttribute 成员

System.Object
   System.Attribute
      System.ComponentModel.BindableAttribute

[Visual Basic]
<AttributeUsage(AttributeTargets.All)>
NotInheritable Public Class BindableAttribute
   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.All)]
public sealed class BindableAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::All)]
public __gc __sealed class BindableAttribute : public Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.All)
class BindableAttribute extends Attribute

黄绿色的部分就是C#状态的语法,再结合看看2里面的代码,就知道这个东西是多么容易理解!!
------------------------------------------

说明
AmbientValueAttribute 指定要传递给属性的值,以使该属性从其他源获取其值。这就是通常所说的周围环境。不能继承此类。
ArrayConverter 提供将 Array 对象与其他各种表示形式相互转换的类型转换器。
AttributeCollection 表示特性的集合。
BaseNumberConverter 为非浮点数字类型提供基类型转换器。
BindableAttribute 指定属性是否通常用于绑定。
BooleanConverter 提供用于将 Boolean 对象与各种其他表示形式相互转换的类型转换器。
BrowsableAttribute 指定一个属性或事件是否应显示在“属性”窗口中。
ByteConverter 提供在 8 位无符号整数对象与其他各种表示形式之间实现转换的类型转换器。
CancelEventArgs 为可取消的事件提供数据。
CategoryAttribute 指定当属性或事件显示在被一个设置为按分类顺序模式的 System.Windows.Forms.PropertyGrid 控件中时,用于给属性或事件分组的类别的名称。
CharConverter 提供将 Unicode 字符对象与各种其他表示形式相互转换的类型转换器。
CollectionChangeEventArgs CollectionChanged 事件提供数据。
CollectionConverter 提供将集合对象与各种其他表示形式相互转换的类型转换器。
Component 提供 IComponent 接口的基实现并启用应用程序之间的对象共享。
ComponentCollection IComponent 对象的集合提供只读容器。
ComponentConverter 提供将组件与各种其他表示形式相互转换的类型转换器。
ComponentEditor 提供自定义组件编辑器的基类。
ComponentResourceManager ComponentResourceManager 类是 ResourceManager 对象,它为枚举组件或对象的资源提供简单功能。
Container 封装零个或更多个组件。
CultureInfoConverter 提供将 CultureInfo 对象与其他各种表示形式相互转换的类型转换器。
DateTimeConverter 提供将 DateTime 对象与其他各种表示形式相互转换的类型转换器。
DecimalConverter 提供将 Decimal 对象与其他各种表示形式相互转换的类型转换器。
DefaultEventAttribute 指定组件的默认事件。
DefaultPropertyAttribute 指定组件的默认属性。
DefaultValueAttribute 指定属性的默认值。
DescriptionAttribute 指定属性或事件的说明。
DesignerAttribute 指定用于为组件实现设计时服务的类。
DesignerCategoryAttribute 指定类设计器属于某一类别。
DesignerSerializationVisibilityAttribute 指定在设计时序列化组件上的属性时所使用的持久性类型。
DesignOnlyAttribute 指定某个属性是否只能在设计时设置。
DesignTimeVisibleAttribute DesignTimeVisibleAttribute 标记组件的可见性。如果存在 DesignTimeVisibleAttribute.Yes,可视化设计器即可在设计器上显示该组件。
DoubleConverter 提供将双精度浮点数字对象与各种其他表示形式相互转换的类型转换器。
EditorAttribute 指定用来更改属性的编辑器。无法继承此类。
EditorBrowsableAttribute 指定某个属性或方法在编辑器中可以查看。不能继承此类。
EnumConverter 提供将 Enum 对象与其他各种表示形式相互转换的类型转换器。
EventDescriptor 提供有关事件的信息。
EventDescriptorCollection 表示 EventDescriptor 对象的集合。
EventHandlerList 提供一个简单的委托列表。不能继承此类。
ExpandableObjectConverter 提供在可扩展对象与其他各种表示形式之间实现转换的类型转换器。
GuidConverter 提供将 Guid 对象与各种其他表示形式相互转换的类型转换器。
ImmutableObjectAttribute 指定对象没有可以被编辑的子属性。
InheritanceAttribute 指示是否已从基类继承与此特性关联的组件。不能继承此类。
InstallerTypeAttribute 为安装组件的类型指定安装程序。
Int16Converter 提供将 16 位有符号整数对象与其他表示形式相互转换的类型转换器。
Int32Converter 提供将 32 位有符号整数对象与其他表示形式相互转换的类型转换器。
Int64Converter 提供将 64 位有符号整数对象与各种其他表示形式相互转换的类型转换器。
InvalidEnumArgumentException 使用无效参数(为枚举数)时引发的异常。
License 为所有许可证提供抽象(在 Visual Basic 中为 MustInherit)基类。向组件的特定实例授予许可证。
LicenseContext 指定何时可使用授权的对象,并且提供一种方法,用以获取为支持在其域内运行的许可证所需要的附加服务。
LicenseException 表示当组件不能被授予许可证时引发的异常。
LicenseManager 提供属性和方法,用以将许可证添加到组件和管理 LicenseProvider。不能继承此类。
LicenseProvider 提供用于实现许可证提供程序的抽象(在 Visual Basic 中为 MustInherit)基类。
LicenseProviderAttribute 指定要与类一起使用的 LicenseProvider
LicFileLicenseProvider 提供 LicenseProvider 的实现。提供程序与 Microsoft .NET Framework 标准授权模块的工作方式相似。
ListBindableAttribute 指定列表可被用作数据源。可视化设计器应该使用该特性来确定是否在数据绑定选择器中显示特定的列表。不能继承此类。
ListChangedEventArgs 提供 ListChanged 事件的数据。
LocalizableAttribute 指定属性是否应本地化。
MarshalByValueComponent 实现 IComponent 并提供可远程控制的组件的基实现,该组件是由值封送的(传递序列化对象的副本)。
MemberDescriptor 抽象基类,它表示类成员(如属性)或事件。
MergablePropertyAttribute 指定该属性能与“属性”窗口中属于其他对象的属性组合。
NotifyParentPropertyAttribute 指示当此属性应用到的属性的值被修改时将通知父属性。不能继承此类。
ParenthesizePropertyNameAttribute 指示关联属性的名称在“属性”窗口中显示时是否带有括号。不能继承此类。
PropertyChangedEventArgs PropertyChanged 事件提供数据。
PropertyDescriptor 提供类上的属性的抽象化。
PropertyDescriptorCollection 表示 PropertyDescriptor 对象的集合。
PropertyTabAttribute 标识要为指定的类显示的属性选项卡。
ProvidePropertyAttribute 指定 IExtenderProvider 的实施者提供给其他组件的属性的名称。
ReadOnlyAttribute 指定该特性所绑定到的属性在设计时是只读属性还是读/写属性。
RecommendedAsConfigurableAttribute 指定该属性可以用作应用程序设置。
ReferenceConverter 提供将对象引用与其他表示形式相互转换的类型转换器。
RefreshEventArgs Refreshed 事件提供数据。
RefreshPropertiesAttribute 指示当关联的属性值更改时设计器如何刷新。不能继承此类。
RunInstallerAttribute 指定在安装程序集时是否应该调用 Visual Studio .NET 的“自定义操作安装程序”或安装程序工具 (Installutil.exe)
SByteConverter 提供将 8 位无符号整数对象与字符串相互转换的类型转换器。
SingleConverter 提供将单精度浮点数字对象与各种其他表示形式相互转换的类型转换器。
StringConverter 提供在字符串对象与其他表示形式之间实现相互转换的类型转换器。
TimeSpanConverter 提供将 TimeSpan 对象与其他表示形式相互转换的类型转换器。
ToolboxItemAttribute 表示工具箱项的特性。
ToolboxItemFilterAttribute 为工具箱项指定要使用的筛选器字符串和筛选器类型。
TypeConverter 提供一种将值的类型转换为其他类型以及访问标准值和子属性的统一方法。
TypeConverter.
SimplePropertyDescriptor
表示为没有属性的对象提供属性的抽象(在 Visual Basic 中为 MustInherit)类。
TypeConverter.
StandardValuesCollection
表示值的集合。
TypeConverterAttribute 指定用作此特性所绑定到的对象的转换器的类型。无法继承此类。
TypeDescriptor 提供有关组件的属性和事件的信息。不能继承此类。
TypeListConverter 提供可用于以可用类型填充列表框的类型转换器。
UInt16Converter 提供将 16 位无符号整数对象与其他表示形式相互转换的类型转换器。
UInt32Converter 提供将 32 位无符号整数对象与其他各种表示形式互相转换的类型转换器。
UInt64Converter 提供将 64 位无符号整数对象与其他表示形式相互转换的类型转换器。
WarningException 指定按警告(而不是错误)处理的异常。
Win32Exception 为 Win32 错误代码引发的异常。

接口

接口 说明
IBindingList 提供在绑定到数据源时支持复杂方案和简单方案所需的功能。
IComponent 提供所有组件所需的功能。ComponentIComponent 的默认实现,它用作公共语言运行库中所有组件的基类。
IContainer 提供容器的功能。容器是在逻辑上包含零个或更多个组件的对象。
ICustomTypeDescriptor 提供为对象提供自定义类型信息的接口。
IDataErrorInfo 提供功能,该功能提供用户界面可以绑定的自定义错误信息。
IEditableObject 提供提交或回滚对用作数据源的对象所做更改的功能。
IExtenderProvider 定义将属性扩展到容器中的其他组件的接口。
IListSource 向对象提供返回可以绑定到数据源列表的功能。
ISite 提供站点所需的功能。
ISupportInitialize 指定该对象支持对批初始化的简单的事务处理通知。
ISynchronizeInvoke 提供同步或异步执行委托的方法。
ITypeDescriptorContext 提供有关组件上下文信息(例如,它所在的容器和它的 PropertyDescriptor)的信息。主要在类型转换中使用此接口。
ITypedList 提供发现可绑定列表架构的功能,其中可用于绑定的属性不同于要绑定到的对象的公共属性。例如,当使用表示客户表的 DataView 时,您要绑定到 DataView 表示的客户对象上的属性,而不是 DataView 的属性。

委托

委托 说明
CancelEventHandler 表示处理可取消事件的方法。
CollectionChangeEventHandler 表示处理将元素添加到集合中或从集合中移除元素时引发的 CollectionChanged 事件的方法。
ListChangedEventHandler 表示将处理 IBindingList 类的 ListChanged 事件的方法。
PropertyChangedEventHandler 表示将处理 PropertyChanged 事件的方法,该事件在更改组件上的属性时引发。
RefreshEventHandler 表示处理当 Type 或组件在设计时被更改时引发的 Refreshed 事件的方法。

枚举

枚举 说明
BindableSupport 指定值来表示是否可以将属性绑定到数据元素或另一个属性。
CollectionChangeAction 指定如何更改集合。
DesignerSerializationVisibility 指定属性对设计时序列化程序所具有的可见性。
EditorBrowsableState 在编辑器中指定属性或方法的可浏览状态。
InheritanceLevel 定义继承级别类型的标识符。
LicenseUsageMode 指定何时可以使用 License
ListChangedType 指定列表的更改方式。
ListSortDirection 指定排序操作的方向。
PropertyTabScope 定义指示“属性”窗口中选项卡的持续范围的标识符。
RefreshProperties 定义指示“属性”窗口刷新类型的标识符。
ToolboxItemFilterType 定义用于指示 ToolboxItemFilterAttribute 使用的筛选器类型的标识符。
posted @ 2006-04-29 11:46  西就东城  阅读(1316)  评论(0编辑  收藏  举报