CA1041 : Fournir un message ObsoleteAttribute
TypeName |
ProvideObsoleteAttributeMessage |
CheckId |
CA1041 |
Catégorie |
Microsoft.CSharp |
Modification avec rupture |
Modification sans rupture |
Cause
Un type ou un membre est marqué à l'aide d'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éconseillés. Les consommateurs de la bibliothèque doivent éviter l'utilisation d'un type ou d'un membre marqué comme obsolète. En effet, il ne sera peut-être plus pris en charge et sera par la suite supprimé des versions ultérieures de la bibliothèque. Quand un type ou un membre marqué à l'aide de ObsoleteAttribute est compilé, la propriété Message de l'attribut s'affiche. Cela fournit à 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 parce que la propriété Message fournit des informations essentielles sur le type ou le membre obsolète.
Exemple
L'exemple suivant indique un membre obsolète qui a un attribut 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";
}
}
};
}