CA1041: Fornecer a mensagem ObsoleteAttributeCA1041: Provide ObsoleteAttribute message

ItemItem ValorValue
RuleIdRuleId CA1041CA1041
CategoriaCategory Microsoft. DesignMicrosoft.Design
A correção está sendo interrompida ou não está sendo interrompidaFix is breaking or non-breaking Sem interrupçãoNon-breaking

CausaCause

Um tipo ou membro é marcado usando um System.ObsoleteAttribute atributo que não tem sua System.ObsoleteAttribute.Message propriedade especificada.A type or member is marked by using a System.ObsoleteAttribute attribute that does not have its System.ObsoleteAttribute.Message property specified.

Por padrão, essa regra só examina os membros e tipos visíveis externamente, mas isso é configurável.By default, this rule only looks at externally visible types and members, but this is configurable.

Descrição da regraRule description

ObsoleteAttribute é usado para marcar Membros e tipos de biblioteca preteridos.ObsoleteAttribute is used to mark deprecated library types and members. Os consumidores de biblioteca devem evitar o uso de qualquer tipo ou membro marcado como obsoleto.Library consumers should avoid the use of any type or member that is marked obsolete. Isso ocorre porque ele pode não ter suporte e, eventualmente, será removido das versões posteriores da biblioteca.This is because it might not be supported and will eventually be removed from later versions of the library. Quando um tipo ou membro marcado usando ObsoleteAttribute é compilado, a Message Propriedade do atributo é exibida.When a type or member marked by using ObsoleteAttribute is compiled, the Message property of the attribute is displayed. Isso dá ao usuário informações sobre o tipo ou o membro obsoleto.This gives the user information about the obsolete type or member. Essas informações geralmente incluem quanto tempo o tipo ou membro obsoleto será compatível com os designers de biblioteca e a substituição preferida a ser usada.This information generally includes how long the obsolete type or member will be supported by the library designers and the preferred replacement to use.

Como corrigir violaçõesHow to fix violations

Para corrigir uma violação dessa regra, adicione o message parâmetro ao ObsoleteAttribute Construtor.To fix a violation of this rule, add the message parameter to the ObsoleteAttribute constructor.

Quando suprimir avisosWhen to suppress warnings

Não suprimir um aviso dessa regra porque a Message propriedade fornece informações críticas sobre o tipo ou o membro obsoleto.Do not suppress a warning from this rule because the Message property provides critical information about the obsolete type or member.

Configurar o código para analisarConfigure code to analyze

Use a opção a seguir para configurar em quais partes de sua base de código executar essa regra.Use the following option to configure which parts of your codebase to run this rule on.

Você pode configurar essa opção apenas para essa regra, para todas as regras ou para todas as regras nesta categoria (design).You can configure this option for just this rule, for all rules, or for all rules in this category (Design). Para obter mais informações, consulte Opções de configuração de regra de qualidade de código.For more information, see Code quality rule configuration options.

Incluir superfícies de API específicasInclude specific API surfaces

Você pode configurar em quais partes de sua base de código executar essa regra, com base em sua acessibilidade.You can configure which parts of your codebase to run this rule on, based on their accessibility. Por exemplo, para especificar que a regra deve ser executada somente na superfície da API não pública, adicione o seguinte par chave-valor a um arquivo . editorconfig em seu projeto:For example, to specify that the rule should run only against the non-public API surface, add the following key-value pair to an .editorconfig file in your project:

dotnet_code_quality.CAXXXX.api_surface = private, internal

ExemploExample

O exemplo a seguir mostra um membro obsoleto que tem um declarado corretamente ObsoleteAttribute .The following example shows an obsolete member that has a correctly declared ObsoleteAttribute.

[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

Confira tambémSee also