コンパイラによって検出された 'System.Runtime.CompilerServices.ExtensionAttribute' のカスタム設計されたバージョンが有効ではありません。 その属性の使用フラグは、アセンブリ、クラス、およびメソッドを許可するように設定する必要があります。
コンパイラによって検出された System.Runtime.CompilerServices.ExtensionAttribute のカスタム設計バージョンは、アセンブリ、メソッド、およびクラスへの属性の適用を有効にするように、属性使用フラグを設定していません。 少なくともこれら 3 つのプログラム要素への適用が必要です。
エラー ID: BC36558
このエラーを解決するには
次の例に示すように、少なくともアセンブリ、メソッド、およびクラスに属性を適用できるように、属性の定義を変更します。
カスタム設計バージョンの代わりに System.Runtime.CompilerServices.ExtensionAttribute を使用します。
例
次の例では、 AttributeUsage 属性を使用して、 ExtensionAttribute の新しいバージョンがどのプログラム要素に適用可能かを指定します。 この例では、 AttributeTargets 列挙体の 3 つのメンバーである 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
関連項目
.NET