CA1041: ObsoleteAttribute-Meldung bereitstellen
TypeName |
ProvideObsoleteAttributeMessage |
CheckId |
CA1041 |
Kategorie |
Microsoft.Design |
Unterbrechende Änderung |
Nicht unterbrechend |
Ursache
Ein Typ oder Member ist durch ein System.ObsoleteAttribute-Attribut markiert, dessen ObsoleteAttribute.Message-Eigenschaft nicht festgelegt wurde.
Regelbeschreibung
ObsoleteAttribute wird verwendet, um veraltete Bibliothekstypen und Member zu markieren.Bibliotheksconsumer sollten die Verwendung von Typen oder Membern vermeiden, die als veraltet markiert sind.Das liegt daran, dass es eventuell nicht unterstützt und in späteren Versionen der Bibliothek möglicherweise nicht mehr enthalten sein wird.Wenn ein Typ oder ein Member, der mit ObsoleteAttribute markiert wurde, kompiliert wird, wird die Message-Eigenschaft des Attributs angezeigt.Auf diese Weise erhält der Benutzer Informationen zum veralteten Typ oder Member.Diese Informationen enthalten im Allgemeinen Angaben darüber, wie lange der veraltete Typ oder Member von den Bibliotheksentwicklern noch unterstützt wird und durch welches Element er ersetzt werden soll.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, fügen Sie den message-Parameter dem ObsoleteAttribute-Konstruktor hinzu.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel, da die Message-Eigenschaft wichtige Informationen über den veralteten Typ oder Member bereitstellt.
Beispiel
Im folgenden Beispiel wird ein veralteter Member veranschaulicht, der über einen ordnungsgemäß deklarierten ObsoleteAttribute verfügt.
Imports System
Namespace DesignLibrary
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
using System;
namespace DesignLibrary
{
public class ObsoleteAttributeOnMember
{
[ObsoleteAttribute("This property is obsolete and will " +
"be removed in a future version. Use the FirstName " +
"and LastName properties instead.", false)]
public string Name
{
get
{
return "Name";
}
}
public string FirstName
{
get
{
return "FirstName";
}
}
public string LastName
{
get
{
return "LastName";
}
}
}
}
using namespace System;
namespace DesignLibrary
{
public ref class ObsoleteAttributeOnMember
{
public:
[ObsoleteAttribute("This property is obsolete and will "
"be removed in a future version. Use the FirstName "
"and LastName properties instead.", false)]
property String^ Name
{
String^ get()
{
return "Name";
}
}
property String^ FirstName
{
String^ get()
{
return "FirstName";
}
}
property String^ LastName
{
String^ get()
{
return "LastName";
}
}
};
}