我想知道是否有任何方法可以限制自定义属性对特定类的使用。 我读过它并且有人写道,在C#中它可能是不可能的。但是我刚尝试在一个没有从 Attribute 中运行的类上使用 AttributeUsage 属性,并且Visual Studio抛出了以下错误:
属性' AttributeUsage'仅适用于从System.Attribute
派生的类
所以现在我认为有一个非常聪明的方法来实现它。你有什么想法吗?
答案 0 :(得分:2)
我能想到的唯一方法是将属性类设为目标的内部类。我很难想出一个合理的理由来使用它。
这将编译:
[InnerAttribute]
public class A
{
private class InnerAttribute : Attribute
{
}
}
但添加这个赢了:
[InnerAttribute]
public class B
{
}