CA1041: Ange föråldradAttribute-meddelande
Property | Värde |
---|---|
Regel-ID | CA1041 |
Title | Ange FöråldradAttribute-meddelande |
Kategori | Designa |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Som förslag |
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 som markeras med hjälp ObsoleteAttribute av kompileras Message visas 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 biblioteksdesigners och vilken ersättning 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 API-ytor
Du kan konfigurera vilka delar av kodbasen som ska köras med den här regeln baserat på deras tillgänglighet. 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
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