CA1041: fornecer mensagem ObsoleteAttribute
TypeName |
ProvideObsoleteAttributeMessage |
CheckId |
CA1041 |
Categoria |
Microsoft.Design |
Alteração Significativa |
Sem quebra |
Causa
Um tipo ou membro são marcados com um atributo de ObsoleteAttribute que não tem sua propriedade de ObsoleteAttribute.Message especificada.
Descrição da Regra
ObsoleteAttribute é usada para marcar tipos substituídos e membros de biblioteca.Os consumidores da biblioteca devem evitar o uso de qualquer tipo ou membro que seja marcado como obsoleto.Isso é porque talvez não tenha suporte e será removido e de versões posteriores de biblioteca.Quando um tipo ou membro marcado usando ObsoleteAttribute são criados, a propriedade de Message do atributo é exibida.Isso fornece informações sobre o tipo de usuário ou o membro obsoleto.Essas informações incluem geralmente quanto tempo o tipo ou membro obsoleto haverá suporte para os designers da biblioteca e pela substituição preferida para usar.
Como Corrigir Violações
Para corrigir uma violação desta regra, adicione o parâmetro de message para o construtor de ObsoleteAttribute .
Quando Suprimir Alertas
Não suprima um aviso desta regra porque a propriedade de Message fornece informações vitais sobre o tipo ou membro obsoleto.
Exemplo
O exemplo a seguir mostra um membro obsoleto que tem ObsoleteAttributecorretamente declarado.
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";
}
}
};
}