CA1041: Fornire una proprietà ObsoleteAttribute.Message
Proprietà | valore |
---|---|
ID regola | CA1041 |
Title | Specificare una proprietà ObsoleteAttribute.Message |
Categoria | Progettazione |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 9 | Come suggerimento |
Causa
Un tipo o un membro è contrassegnato utilizzando un System.ObsoleteAttribute attributo che non ha la relativa System.ObsoleteAttribute.Message proprietà specificata.
Per impostazione predefinita, questa regola esamina solo tipi e membri visibili esternamente, ma è configurabile.
Descrizione regola
ObsoleteAttribute viene usato per contrassegnare i tipi e i membri della libreria deprecati. I consumer di libreria devono evitare l'uso di qualsiasi tipo o membro contrassegnato come obsoleto. Ciò è dovuto al fatto che potrebbe non essere supportato e alla fine verrà rimosso dalle versioni successive della libreria. Quando viene compilato un tipo o un membro contrassegnato tramite ObsoleteAttribute , viene visualizzata la Message proprietà dell'attributo . In questo modo vengono fornite le informazioni utente sul tipo o sul membro obsoleto. Queste informazioni includono in genere il tempo per cui il tipo o il membro obsoleto sarà supportato dalle finestre di progettazione della libreria e dalla sostituzione preferita da usare.
Come correggere le violazioni
Per correggere una violazione di questa regola, aggiungere il message
parametro al ObsoleteAttribute costruttore .
Quando eliminare gli avvisi
Non eliminare un avviso da questa regola perché la Message proprietà fornisce informazioni critiche sul tipo o sul membro obsoleto.
Configurare il codice da analizzare
Usare l'opzione seguente per configurare le parti della codebase in cui eseguire questa regola.
È possibile configurare questa opzione solo per questa regola, per tutte le regole a cui si applica o per tutte le regole in questa categoria (Progettazione) a cui si applica. Per altre informazioni, vedere Opzioni di configurazione delle regole di qualità del codice.
Includere superfici API specifiche
È possibile configurare le parti della codebase in modo da eseguire questa regola in base all'accessibilità. Ad esempio, per specificare che la regola deve essere eseguita solo sulla superficie dell'API non pubblica, aggiungere la coppia chiave-valore seguente a un file con estensione editorconfig nel progetto:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Esempio
Nell'esempio seguente viene illustrato un membro obsoleto con un oggetto dichiarato ObsoleteAttributecorrettamente.
[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