特定类的属性限制

时间:2015-01-24 22:28:24

标签: c#

我想知道是否有任何方法可以限制自定义属性对特定类的使用。 我读过它并且有人写道,在C#中它可能是不可能的。但是我刚尝试在一个没有从 Attribute 中运行的类上使用 AttributeUsage 属性,并且Visual Studio抛出了以下错误:

  

属性' AttributeUsage'仅适用于从System.Attribute

派生的类

所以现在我认为有一个非常聪明的方法来实现它。你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我能想到的唯一方法是将属性类设为目标的内部类。我很难想出一个合理的理由来使用它。

这将编译:

[InnerAttribute]
public class A 
{
    private class InnerAttribute : Attribute
    {

    }
}

但添加这个赢了:

[InnerAttribute]
public class B
{

}