Compartilhar via


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";
            }
        }
    };
}

Consulte também

Referência

ObsoleteAttribute