【说明--2006-5-17】
这篇搜集的内容是前阵子在实践中匆忙用到的东西;今天看了本电子书,有一章节说道了这方面的信息,正式的名称成是“设计期Attribute”,在此,我也觉着更好理解一点,能从标题知道文章的主题内容。
开发服务器控件,有很多需要学习的;比如说:属性;
这里我就先学习属性。
在控件编程的过程中,使用vs2003开发,会给你的代码写出如下字符:
1
[DefaultProperty("Text"),ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
2
[Bindable(true),Category("Appearance"),DefaultValue("")]
[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 成员。
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 的“自定义操作安装程序”或 |
| 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 | 提供所有组件所需的功能。Component 是 IComponent 的默认实现,它用作公共语言运行库中所有组件的基类。 |
| 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 使用的筛选器类型的标识符。 |