请说明在 .NET 平台中定义自定义特性(Attribute)的方法,以及如何读取和应用这些特性。
考察说明
考查对 .NET 特性机制的理解,包括自定义特性的定义、使用和反射读取。
回答思路
- 【回答框架 1】特性是用于向程序元素(如类、方法、属性)添加元数据的类,必须继承自 System.Attribute。自定义特性需定义特性类,并可通过 AttributeUsage 指定可应用的目标元素(如类、方法)及是否允许多次使用、是否继承。
- 【回答框架 2】使用特性时,通过 [MyAttribute(参数)] 语法应用于目标元素。特性构造函数参数可以是位置参数或命名参数,命名参数通过公共字段或属性设置。
- 【回答框架 3】读取特性通常通过反射(Reflection),使用 Attribute.GetCustomAttribute 或 GetCustomAttributes 方法获取指定元素上的特性实例,并可访问其属性值。
- 【回答框架 4】在 .NET 中,可使用条件特性(Conditional)控制是否应用,或通过全局特性(如 Assembly 级别)为程序集添加元数据。
- 【回答框架 5】特性常用于框架开发、依赖注入、序列化等场景,需注意特性本身不包含业务逻辑,仅提供元数据。
- 【关键点 1】自定义特性必须继承 System.Attribute。
- 【关键点 2】通过 AttributeUsage 指定特性目标。
- 【关键点 3】通过反射读取特性并访问其参数。
- 【关键点 4】特性名称可省略 Attribute 后缀。