Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA1041 |
| Title | Fornire un messaggio di ObsoleteAttribute |
| Categoria | Progettazione |
| La correzione causa un'interruzione o meno | Non causa un'interruzione |
| Abilitato per impostazione predefinita in .NET 10 | Come suggerimento |
| Linguaggi applicabili | C# e Visual Basic |
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. Gli utenti delle librerie 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 per quanto tempo il tipo o il membro obsoleto sarà supportato dai progettisti della libreria e la 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 alla relativa accessibilità impostando l'opzione api_surface. 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
Nota
Sostituire la parte XXXX di CAXXXX con l'ID della regola applicabile.
Esempio
Nell'esempio seguente viene illustrato un membro obsoleto che ha un ObsoleteAttribute dichiarato correttamente.
[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