1.特性Attribute
特性:是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。
特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。
2.声明和使用Attribute,AtttibuteUsage
(1)声明
(2)使用
上述相当于在实例化一个类。也可以给方法加特性,如下
(3)反射查看自定义的Attribute
(4)AtttibuteUsage:可重复修饰某一个元素,预定义特性 AttributeUsage 描述了如何使用一个自定义特性类。它规定了特性可应用到的项目的类型
其中:
- 参数 validon 规定特性可被放置的语言元素。它是枚举器 AttributeTargets 的值的组合。默认值是 AttributeTargets.All。
- 参数 allowmultiple(可选的)为该特性的 AllowMultiple 属性(property)提供一个布尔值。如果为 true,则该特性是多用的。默认值是 false(单用的)。
- 参数 inherited(可选的)为该特性的 Inherited 属性(property)提供一个布尔值。如果为 true,则该特性可被派生类继承。默认值是 false(不被继承)。
3.运行中获取Attribute:额外信息、额外操作
在没有破环类型封装得前提下,可以加点额外得信息和行为
4. Remark封装应用Attribute
获取Remark
(2)attribute验证方法
定义
调用
反射使用验证方式
扩展:如果有多个特性验证如新增length特性,则可加抽象方法
而validate则改为如下方式,之后就不用增加特性之后重复修改此方法