Aracılığıyla paylaş


CA1041: ObsoleteAttribute iletisi sağlayın

Özellik Değer
Kural Kimliği CA1041
Başlık ObsoleteAttribute iletisi sağla
Kategori Tasarım
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan
.NET 9'da varsayılan olarak etkin Öneri olarak

Neden

Bir tür veya üye, özelliği belirtilmemiş System.ObsoleteAttribute.Message bir System.ObsoleteAttribute ö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 eski türü veya üye kullanıcı bilgilerini sağlar. 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 parametresini message oluşturucuya ObsoleteAttribute ekleyin.

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

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

Çözümlemek için kod yapılandırma

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

Bu kuralın üzerinde çalıştırılacak kod tabanınızın hangi bölümlerini erişilebilirliklerine göre 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

Ö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.