Dela via


CA1041: Ange föråldradAttribute-meddelande

Egenskap Värde
Regel-ID CA1041
Title Ange FöråldradAttribute-meddelande
Kategori Design
Korrigeringen är antingen brytande eller icke-brytande Icke-brytande
Aktiverad som standard i .NET 10 Som förslag
Tillämpliga språk C# och Visual Basic

Orsak

En typ eller medlem markeras med hjälp av ett System.ObsoleteAttribute attribut som inte har sin System.ObsoleteAttribute.Message egenskap angiven.

Som standard tittar den här regeln bara på externt synliga typer och medlemmar, men detta kan konfigureras.

Regelbeskrivning

ObsoleteAttribute används för att markera inaktuella bibliotekstyper och medlemmar. Bibliotekskonsumenter bör undvika användning av alla typer eller medlemmar som har markerats som föråldrade. Det beror på att det kanske inte stöds och så småningom tas bort från senare versioner av biblioteket. När en typ eller medlem markeras med hjälp av ObsoleteAttribute och kompileras, visas Message-egenskapen för attributet. Detta ger användaren information om den föråldrade typen eller medlemmen. Den här informationen omfattar vanligtvis hur länge den föråldrade typen eller medlemmen kommer att stödjas av biblioteksutvecklare och den föredragna ersättningen som ska användas.

Så här åtgärdar du överträdelser

Om du vill åtgärda ett brott mot den här regeln lägger du till parametern message i ObsoleteAttribute konstruktorn.

När du ska ignorera varningar

Ignorera inte en varning från den här regeln eftersom egenskapen Message innehåller viktig information om den föråldrade typen eller medlemmen.

Konfigurera kod för analys

Använd följande alternativ för att konfigurera vilka delar av kodbasen som regeln ska köras på.

Du kan konfigurera det här alternativet för bara den här regeln, för alla regler som gäller för eller för alla regler i den här kategorin (design) som den gäller för. Mer information finns i Konfigurationsalternativ för kodkvalitetsregel.

Inkludera specifika ytor för API:er

Du kan konfigurera vilka delar av kodbasen som ska köra den här regeln baserat på deras tillgänglighet genom att ange alternativet api_surface. Om du till exempel vill ange att regeln endast ska köras mot den icke-offentliga API-ytan lägger du till följande nyckel/värde-par i en .editorconfig-fil i projektet:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Notera

Ersätt den XXXX delen av CAXXXX med ID:t för den tillämpliga regeln.

Exempel

I följande exempel visas en föråldrad medlem som har en korrekt deklarerad ObsoleteAttribute.

[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

Se även