为了用AttributeUsage
装饰一个类,装饰的类还必须继承Attribute
。
我可以使用自定义属性强制执行类似的约束吗?
唯一的方法是使用受保护的属性,但是在这种情况下,您将强制属性的用户从属性类继承。
abstract class CustomAttribute : Attribute {
[AttributeUsage(AttributeTargets.Class)]
protected sealed class MyTestAttribute : Attribute {}
}
[MyTest]
class DerivedFromYourCustomAttribute : CustomAttribute {
}
[MyTest]
class NotDerivedFromYourCustomAttribute {
}