CA1041: ObsoleteAttribute-Meldung bereitstellen.

Eigenschaft Wert
Regel-ID CA1041
Titel ObsoleteAttribute-Meldung bereitstellen.
Kategorie Design
Fix führt oder führt nicht zur Unterbrechung Nicht unterbrechend
Standardmäßig in .NET 8 aktiviert Als Vorschlag

Ursache

Ein Typ oder Member wird mit einem System.ObsoleteAttribute-Attribut markiert, dessen System.ObsoleteAttribute.Message-Eigenschaft nicht angegeben ist.

Standardmäßig werden mit dieser Regel nur extern sichtbare Typen und Member überprüft, aber dies ist konfigurierbar.

Regelbeschreibung

ObsoleteAttribute wird verwendet, um veraltete Bibliothekstypen und -member zu markieren. Bibliotheksbenutzer sollten die Verwendung von Typen oder Elementen vermeiden, die als veraltet gekennzeichnet sind. Der Grund dafür ist, dass sie möglicherweise nicht unterstützt und aus späteren Versionen der Bibliothek entfernt werden. Wenn ein mit ObsoleteAttribute markierter Typ oder ein mit ObsoleteAttribute markiertes Member kompiliert wird, wird die Message-Eigenschaft des Attributs angezeigt. Auf diese Weise erhält der Benutzer Informationen zum veralteten Typ oder Member. Diese Informationen beinhalten im Allgemeinen, wie lange der veraltete Typ oder das veraltete Member von den Bibliotheksdesignern unterstützt wird und welcher Ersatz bevorzugt zu verwenden ist.

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, fügen Sie den message-Parameter zum ObsoleteAttribute-Konstruktor hinzu.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung von dieser Regel, da die Message-Eigenschaft wichtige Informationen über den veralteten Typ oder das veraltete Member bereitstellt.

Konfigurieren des zu analysierenden Codes

Mithilfe der folgenden Option können Sie konfigurieren, für welche Teile Ihrer Codebasis diese Regel ausgeführt werden soll.

Sie können diese Optionen nur für diese Regel, für alle zutreffenden Regeln oder für alle zutreffenden Regeln in dieser Kategorie (Entwurf) konfigurieren. Weitere Informationen finden Sie unter Konfigurationsoptionen für die Codequalitätsregel.

Einschließen bestimmter API-Oberflächen

Sie können je nach Zugänglichkeit festlegen, für welche Bestandteile Ihrer Codebasis diese Regel ausgeführt wird. Sie können beispielsweise festlegen, dass die Regel nur für die nicht öffentliche API-Oberfläche ausgeführt werden soll, indem Sie einer EDITORCONFIG-Datei in Ihrem Projekt das folgende Schlüssel-Wert-Paar hinzufügen:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Beispiel

Das folgende Beispiel zeigt ein veraltetes Mitglied, das ein korrekt deklariertes ObsoleteAttribute aufweist.

[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

Siehe auch