属性如何强制继承?

问题描述 投票:0回答:1

为了用AttributeUsage装饰一个类,装饰的类还必须继承Attribute

我可以使用自定义属性强制执行类似的约束吗?

c# inheritance attributes constraints
1个回答
0
投票

唯一的方法是使用受保护的属性,但是在这种情况下,您将强制属性的用户从属性类继承。

abstract class CustomAttribute : Attribute {
    [AttributeUsage(AttributeTargets.Class)]
    protected sealed class MyTestAttribute : Attribute {}
}

[MyTest]
class DerivedFromYourCustomAttribute : CustomAttribute {
}

[MyTest]
class NotDerivedFromYourCustomAttribute {
}
© www.soinside.com 2019 - 2024. All rights reserved.