Vlastní navržená verze System.Runtime.CompilerServices.ExtensionAttribute nalezená kompilátorem není platná.

Vlastní navržená verze System.Runtime.CompilerServices.ExtensionAttribute nalezená kompilátorem není platná. Příznaky použití atributu musí být nastaveny tak, aby povolovala sestavení, třídy a metody.

Vlastní navržená verze System.Runtime.CompilerServices.ExtensionAttribute , kterou kompilátor našel, nenastavuje příznaky použití jeho atributu pro povolení použití atributu na sestavení, metody a třídy. Je vyžadována aplikace alespoň na tyto tři prvky programu.

ID chyby: BC36558

Oprava této chyby

  • Změňte definici atributu tak, aby byl atribut aplikován alespoň na sestavení, metody a třídy, jak je znázorněno v následujících příkladech.

  • Používejte System.Runtime.CompilerServices.ExtensionAttribute místo vlastní navržené verze.

Příklad

Následující příklad používá AttributeUsage atribut k určení prvků programu, na které se nová verze ExtensionAttribute může použít. Příklad určuje tři členy výčtu AttributeTargets : Assembly, Classa Method. Tato chyba způsobí vynechání některého z těchto prvků.

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

Alternativně můžete povolit ExtensionAttribute použití u všech prvků programu pomocí All člena AttributeTargetsprogramu .

<AttributeUsage(AttributeTargets.All)>

AttributeUsage Odstranění řádku, jak je znázorněno v následujícím kódu, vytvoří stejný výsledek.

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

Viz také