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