指定.NET属性目标所需的基类所需、属性、目标、NET

由网友(Nostalgia 留恋)分享简介:我试图创建与下面的code,但意外离开的子类的自定义的.NET属性。这产生在评论中所示的易于固定的编译错误。//导致编译器错误CS0641:属性AttributeUsage'是//仅适用于从System.Attribute派生类[AttributeUsage(AttributeTargets.Class)内部类T...

我试图创建与下面的code,但意外离开的子类的自定义的.NET属性。这产生在评论中所示的易于固定的编译错误。

  //导致编译器错误CS0641:属性AttributeUsage'是
//仅适用于从System.Attribute派生类
[AttributeUsage(AttributeTargets.Class)
内部类ToolDeclarationAttribute
{
    内部ToolDeclarationAttribute()
    {
    }
}
 

我的问题是如何编译器知道 [AttributeUsage] 属性只能应用到子类 System.Attribute ?使用.NET反射我看不出有什么特别的 AttributeUsageAttribute特性类声明本身。不幸的是,这可能仅仅是由编译器本身产生的一个特例。

  [Serializable接口,标记有ComVisible特性(真),AttributeUsage(AttributeTargets.Class,继承=真)
公共密封类AttributeUsageAttribute特性:属性
{
    ...
 

我想可以指定我的自定义属性只能被放置在一个特定的类(或接口)的子类。这可能吗?

解决方案   

我想可以指定我的自定义属性只能被放置在一个特定的类(或接口)的子类。这可能吗?

其实,有一种方法可以做到这一点,使用受保护的子类(而不是接口) - 看的

阅读全文

相关推荐

最新文章