Derleyici tarafından bulunan 'System.Runtime.CompilerServices.ExtensionAttribute' özel olarak tasarlanmış sürümü geçerli değil

Derleyici tarafından bulunan özel tasarımlı 'System.Runtime.CompilerServices.ExtensionAttribute' sürümü geçerli değil. Öznitelik kullanım bayrakları derlemelere, sınıflara ve yöntemlere izin verecek şekilde ayarlanmalıdır.

Derleyicinin bulduğu özel olarak tasarlanmış sürümü, özniteliğin System.Runtime.CompilerServices.ExtensionAttribute derlemelere, yöntemlere ve sınıflara uygulanmasını etkinleştirmek için öznitelik kullanım bayraklarını ayarlamaz. En az bu üç program öğesine uygulama gereklidir.

Hata Kimliği: BC36558

Bu hatayı düzeltmek için

  • Öznitelik tanımını, aşağıdaki örneklerde gösterildiği gibi en azından derlemelere, yöntemlere ve sınıflara uygulanmasını sağlamak için değiştirin.

  • Özel olarak tasarlanmış sürüm yerine kullanın System.Runtime.CompilerServices.ExtensionAttribute .

Örnek

Aşağıdaki örnek, yeni sürümünün AttributeUsage hangi program öğelerine uygulanabileceğini belirtmek için özniteliğini ExtensionAttribute kullanır. Örnek, numaralandırmanın üç üyesini AttributeTargets belirtir: Assembly, Classve Method. Bu öğelerden herhangi birinin atlanırsa bu hataya neden olur.

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

Alternatif olarak, öğesinin üyesini AttributeTargetskullanarak tüm program öğelerine uygulanmasına All izin vekleyebilirsinizExtensionAttribute.

<AttributeUsage(AttributeTargets.All)>

Satırın AttributeUsage silinmesi, aşağıdaki kodda gösterildiği gibi aynı sonucu verir.

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

Ayrıca bkz.