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