Condividi tramite


CA1041: Fornire un messaggio per ObsoleteAttribute

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

Vedi anche