C# AttributeUsage的使用浅析
AttributeUsage是一个用于指定自定义属性的使用规范的特性类。通过使用AttributeUsage特性,可以限制自定义属性只能利用于特定的程序元素,例如类、方法、字段等。
AttributeUsage特性有三个参数:
1. ValidOn:指定自定义属性可以利用的程序元素类型。可以通过量个参数值进行组合,经常使用的参数值包括:AttributeTargets.Assembly(程序集)、AttributeTargets.Class(类)、AttributeTargets.Method(方法)、AttributeTargets.Property(属性)、AttributeTargets.Field(字段)等。
2. AllowMultiple:指定自定义属性是否是可以屡次利用于同一个程序元素。如果设置为true,则可以屡次利用;如果设置为false,则只能利用一次。默许值为false。
3. Inherited:指定自定义属性是否是可以被继承。如果设置为true,则子类会继承父类的属性;如果设置为false,则子类不会继承父类的属性。默许值为true。
下面是一个示例代码:
```csharp
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class CustomAttribute : Attribute
{
// 自定义属性的代码逻辑
}
[Custom] // 只能利用于类和方法
public class MyClass
{
[Custom] // 只能利用于类和方法
public void MyMethod()
{
// 方法的代码逻辑
}
}
```
在上述示例中,CustomAttribute只能利用于类和方法,且不能屡次利用。同时,该属性会被子类继承。因此,MyClass类和MyMethod方法都可以利用CustomAttribute。
TOP