Delen via


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 8 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

Zie ook