Fournir un message ObsoleteAttribute
Mise à jour : novembre 2007
TypeName |
ProvideObsoleteAttributeMessage |
CheckId |
CA1041 |
Catégorie |
Microsoft.CSharp |
Modification avec rupture |
Modification sans rupture |
Cause
Un type ou un membre est marqué avec un attribut System.ObsoleteAttribute dont la propriété ObsoleteAttribute.Message n'est pas spécifiée.
Description de la règle
ObsoleteAttribute est utilisé pour marquer des types et des membres de bibliothèque désapprouvés. Les consommateurs de bibliothèque doivent éviter d'utiliser tout type ou membre marqué comme obsolète ; en effet, ceux-ci peuvent ne pas être pris en charge et être à terme supprimés de versions ultérieures de la bibliothèque. Lorsqu'un type ou membre marqué avec ObsoleteAttribute est compilé, la propriété Message de l'attribut est affichée, fournissant à l'utilisateur des informations sur le type ou le membre obsolète. Ces informations incluent généralement la durée de prise en charge à courir du type ou du membre obsolète par les concepteurs de bibliothèque et la méthode de substitution qu'il est préférable d'utiliser.
Comment corriger les violations
Pour corriger une violation de cette règle, ajoutez le paramètre message au constructeur ObsoleteAttribute.
Quand supprimer les avertissements
Ne supprimez pas d'avertissement de cette règle car la propriété Message fournit des informations essentielles sur le type ou le membre obsolète.
Exemple
L'exemple suivant présente un membre obsolète doté d'un ObsoleteAttribute correctement déclaré.
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";
}
}
};
}