Найденная компилятором версия System.Runtime.CompilerServices.ExtensionAttribute, определенная пользователем, является недопустимой
Обновлен: Ноябрь 2007
Сообщение об ошибке
Найденная компилятором версия System.Runtime.CompilerServices.ExtensionAttribute, которая создана пользователем, является недопустимой. Его флаги использования атрибутов должны быть установлены для разрешения сборок, классов и методов.
The custom-designed version of 'System.Runtime.CompilerServices.ExtensionAttribute' found by the compiler is not valid. Its attribute usage flags must be set to allow assemblies, classes, and methods.
Созданная пользователем версия System.Runtime.CompilerServices.ExtensionAttribute, которую нашел компилятор, не устанавливает флаги использования атрибутов, позволяющих разрешить сборки, методы и классы. По крайней мере для трех программных элементов требуется приложение.
Идентификатор ошибки: BC36558
Исправление этой ошибки
Измените определение атрибута таким образом, чтобы разрешить атрибут для применения по крайней мере к сборкам, методам и классам, как показано в следующих примерах.
Используйте System.Runtime.CompilerServices.ExtensionAttribute вместо пользовательской версии.
Пример
В следующем примере атрибут 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
Кроме того, можно разрешить применение ExtensionAttribute ко всем программным элементам с помощью элемента All из AttributeTargets.
<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)
Написание настраиваемых атрибутов