Fornire una proprietà ObsoleteAttribute.Message
Aggiornamento: novembre 2007
TypeName |
ProvideObsoleteAttributeMessage |
CheckId |
CA1041 |
Category |
Microsoft.Design |
Breaking Change |
Non sostanziale |
Causa
Un tipo o un membro è contrassegnato con un attributo System.ObsoleteAttribute per cui non è specificata la proprietà ObsoleteAttribute.Message.
Descrizione della regola
L'oggetto ObsoleteAttribute è utilizzato per contrassegnare tipi e membri di libreria obsoleti. I consumer di librerie devono evitare di utilizzare qualsiasi tipo o membro contrassegnato come obsoleto, poiché potrebbe non essere supportato e venire rimosso dalle versioni successive della libreria. Quando viene compilato un membro o un tipo contrassegnato con ObsoleteAttribute, viene visualizzata la proprietà Message dell'attributo che fornisce all'utente le informazioni sul tipo o membro obsoleto. Queste informazioni includono in genere per quanto tempo il tipo o il membro obsoleto verrà supportato dai progettisti di librerie e l'elemento sostitutivo consigliato da utilizzare.
Correzione di violazioni
Per correggere una violazione di questa regola, aggiungere il parametro message al costruttore ObsoleteAttribute.
Esclusione di avvisi
Non escludere un avviso da questa regola poiché la proprietà Message fornisce informazioni essenziali sul tipo o membro obsoleto.
Esempio
Nell'esempio riportato di seguito viene illustrato un membro obsoleto con una proprietà dichiarata ObsoleteAttribute.
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";
}
}
};
}