CA1041: Message ObsoleteAttribute opgeven
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1041 |
Titel | Message ObsoleteAttribute opgeven |
Categorie | Ontwerpen |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Als suggestie |
Oorzaak
Een type of lid wordt gemarkeerd met behulp van een System.ObsoleteAttribute kenmerk waarvoor de eigenschap niet is System.ObsoleteAttribute.Message opgegeven.
Deze regel kijkt standaard alleen naar extern zichtbare typen en leden, maar dit kan worden geconfigureerd.
Beschrijving van regel
ObsoleteAttribute wordt gebruikt om afgeschafte bibliotheektypen en leden te markeren. Bibliotheekgebruikers moeten voorkomen dat elk type of lid wordt gebruikt dat is gemarkeerd als verouderd. Dit komt doordat het mogelijk niet wordt ondersteund en uiteindelijk wordt verwijderd uit latere versies van de bibliotheek. Wanneer een type of lid dat is gemarkeerd met behulp ObsoleteAttribute , is gecompileerd, wordt de Message eigenschap van het kenmerk weergegeven. Dit geeft de gebruiker informatie over het verouderde type of lid. Deze informatie omvat over het algemeen hoe lang het verouderde type of lid wordt ondersteund door de bibliotheekontwerpers en de voorkeursvervanging die moet worden gebruikt.
Schendingen oplossen
Als u een schending van deze regel wilt oplossen, voegt u de message
parameter toe aan de ObsoleteAttribute constructor.
Wanneer waarschuwingen onderdrukken
Geen waarschuwing van deze regel onderdrukken omdat de Message eigenschap essentiƫle informatie biedt over het verouderde type of lid.
Code configureren om te analyseren
Gebruik de volgende optie om te configureren op welke onderdelen van uw codebase deze regel moet worden uitgevoerd.
U kunt deze optie configureren voor alleen deze regel, voor alle regels waarop deze van toepassing is, of voor alle regels in deze categorie (ontwerp) waarop deze van toepassing is. Zie de configuratieopties voor de codekwaliteitsregel voor meer informatie.
Specifieke API-oppervlakken opnemen
U kunt instellen op welke onderdelen van uw codebase deze regel moet worden uitgevoerd, op basis van hun toegankelijkheid. Als u bijvoorbeeld wilt opgeven dat de regel alleen moet worden uitgevoerd op het niet-openbare API-oppervlak, voegt u het volgende sleutel-waardepaar toe aan een .editorconfig-bestand in uw project:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Opmerking
In het volgende voorbeeld ziet u een verouderd lid met een correct gedeclareerde 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