CA1041: Fornecer mensagem ObsoleteAttribute
Property | valor |
---|---|
ID da regra | CA1041 |
Título | Fornecer mensagem ObsoleteAttribute |
Categoria | Desenho |
A correção está quebrando ou não quebrando | Sem quebra |
Habilitado por padrão no .NET 9 | Como sugestão |
Motivo
Um tipo ou membro é marcado usando um System.ObsoleteAttribute atributo que não tem sua System.ObsoleteAttribute.Message propriedade especificada.
Por padrão, essa regra examina apenas tipos e membros visíveis externamente, mas isso é configurável.
Descrição da regra
ObsoleteAttribute é usado para marcar tipos de biblioteca e membros obsoletos. Os consumidores de bibliotecas devem evitar o uso de qualquer tipo ou membro que esteja marcado como obsoleto. Isso ocorre porque ele pode não ser suportado e, eventualmente, será removido de versões posteriores da biblioteca. Quando um tipo ou membro marcado usando ObsoleteAttribute é compilado, a Message propriedade do atributo é exibida. Isso dá ao usuário informações sobre o tipo ou membro obsoleto. Essas informações geralmente incluem por quanto tempo o tipo ou membro obsoleto será suportado pelos designers da biblioteca e o substituto preferido para usar.
Como corrigir violações
Para corrigir uma violação dessa regra, adicione o message
parâmetro ao ObsoleteAttribute construtor.
Quando suprimir avisos
Não suprima um aviso desta regra porque a Message propriedade fornece informações críticas sobre o tipo ou membro obsoleto.
Configurar código para análise
Use a opção a seguir para configurar em quais partes da sua base de código executar essa regra.
Você pode configurar essa opção apenas para esta regra, para todas as regras às quais ela se aplica ou para todas as regras nesta categoria (Design) às quais ela se aplica. Para obter mais informações, consulte Opções de configuração da regra de qualidade de código.
Incluir superfícies de API específicas
Você pode configurar em quais partes da sua base de código executar essa regra, com base em sua acessibilidade. Por exemplo, para especificar que a regra deve ser executada somente na superfície de API não pública, adicione o seguinte par chave-valor a um arquivo .editorconfig em seu projeto:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Exemplo
O exemplo a seguir mostra um membro obsoleto que tem um ObsoleteAttributearquivo .
[ObsoleteAttribute("This property is obsolete and will be removed in a " +
"future version. Use the FullName property instead.", false)]
public string Name
{
get => "Name";
}
Imports System
Namespace ca1041
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