编译器找到的“System.Runtime.CompilerServices.ExtensionAttribute”的自定义设计版本无效

更新:2007 年 11 月

错误消息

编译器找到的“System.Runtime.CompilerServices.ExtensionAttribute”自定义设计版本无效。它的属性使用标志必须设置为允许程序集、类和方法。

编译器找到的 System.Runtime.CompilerServices.ExtensionAttribute 自定义设计版本没有将其属性使用标志设置为允许将该属性应用于程序集、方法和类。要求至少可以将该属性应用于这三种程序元素。

**错误 ID:**BC36558

更正此错误

示例

下面的示例使用 AttributeUsage 属性指定 ExtensionAttribute 的新版本可以应用于哪些程序元素。该示例指定 AttributeTargets 枚举的三个成员。Assembly、Class 和 Method。省略这些元素中的任何一个都会导致此错误。

Namespace System.Runtime.CompilerServices
    <AttributeUsage(AttributeTargets.Assembly Or _
        AttributeTargets.Class Or AttributeTargets.Method)>
    Class ExtensionAttribute
        Inherits System.Attribute
        ' Definitions of methods, fields, and properties.
    End Class
End Namespace

或者,可以使用 AttributeTargets 的 All 成员允许将 ExtensionAttribute 应用于所有程序元素。

    <AttributeUsage(AttributeTargets.All)>

删除 AttributeUsage 行(如下面的代码所示)会产生相同的结果。

Namespace System.Runtime.CompilerServices
    Class ExtensionAttribute
        Inherits System.Attribute
        ' Definitions of methods, fields, and properties.
    End Class
End Namespace

请参见

任务

如何:定义自己的属性

概念

Visual Basic 中的属性概述

扩展方法 (Visual Basic)

编写自定义属性

参考

ExtensionAttribute

其他资源

Visual Basic 中的自定义属性 (Attribute)