CA1041: ObsoleteAttribute iletisi sağlayın

Özellik Değer
Kural Kimliği CA1041
Başlık ObsoleteAttribute iletisini ver
Kategori Tasarım
Düzeltme bozucu veya bozucu olmayan bir etkisi olabilir Kaydırmaz
.NET 10'da varsayılan olarak etkin Öneri olarak
Geçerli diller C# ve Visual Basic

Neden

Bir tür veya üye, özelliği belirtilmemiş System.ObsoleteAttribute bir System.ObsoleteAttribute.Message öznitelik kullanılarak işaretlenir.

Varsayılan olarak, bu kural yalnızca dışarıdan görünen türler ve üyelere bakar, ancak bu yapılandırılabilir.

Kural açıklaması

ObsoleteAttribute , kullanım dışı kitaplık türlerini ve üyelerini işaretlemek için kullanılır. Kitaplık tüketicileri, kullanım dışı olarak işaretlenmiş herhangi bir tür veya üyenin kullanımından kaçınmalıdır. Bunun nedeni, desteklenmeyebilir ve sonunda kitaplığın sonraki sürümlerinden kaldırılacak olmasıdır. kullanılarak ObsoleteAttribute işaretlenen bir tür veya üye derlendiğinde özniteliğin Message özelliği görüntülenir. Bu, kullanıcıya kullanım dışı tür veya üye hakkında bilgi verir. Bu bilgiler genellikle eski türün veya üyenin kitaplık tasarımcıları tarafından ne kadar süreyle destekleneceğini ve kullanılacak tercih edilen değişikliği içerir.

İhlalleri düzeltme

Bu kuralın ihlalini düzeltmek için message parametresini ObsoleteAttribute oluşturucuya ekleyin.

Uyarıların ne zaman bastırılması gerekiyor?

Özellik, eski tür veya üye hakkında kritik bilgiler sağladığından, bu kuraldan gelen bir uyarıyı gizlemeyin.

Analiz için kodu yapılandır

Bu kuralın kod tabanınızın hangi bölümlerinde çalıştırılacaklarını yapılandırmak için aşağıdaki seçeneği kullanın.

Bu seçeneği yalnızca bu kural, geçerli olduğu tüm kurallar veya bu kategorideki (Tasarım) tüm kurallar için yapılandırabilirsiniz. Daha fazla bilgi için bkz . Kod kalitesi kuralı yapılandırma seçenekleri.

Belirli API yüzeylerini ekleme

api_surface seçeneğini ayarlayarak, bu kuralın erişilebilirliği temelinde kod tabanınızın hangi bölümlerinde çalıştırılacaklarını yapılandırabilirsiniz. Örneğin, kuralın yalnızca genel olmayan API yüzeyinde çalıştırılması gerektiğini belirtmek için projenizdeki bir .editorconfig dosyasına aşağıdaki anahtar-değer çiftini ekleyin:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Not

XXXX CAXXXX bölümünü geçerli kuralın kimliğiyle değiştirin.

Örnek

Aşağıdaki örnekte, doğru şekilde bildirilen ObsoleteAttributeeski bir üye gösterilmektedir.

[ObsoleteAttribute("This property is obsolete and will be removed in a " +
"future version. Use the FullName property instead.", false)]
public string Name
{
    get => "Name";
}
Imports System

Namespace ca1041

    Public Class ObsoleteAttributeOnMember

        <ObsoleteAttribute("This property is obsolete and will " &
             "be removed in a future version. Use the FirstName " &
             "and LastName properties instead.", False)>
        ReadOnly Property Name As String
            Get
                Return "Name"
            End Get
        End Property

        ReadOnly Property FirstName As String
            Get
                Return "FirstName"
            End Get
        End Property

        ReadOnly Property LastName As String
            Get
                Return "LastName"
            End Get
        End Property

    End Class

End Namespace

Ayrıca bkz.