Udostępnij za pośrednictwem


CA1041: Zapewnianie wiadomości ObsoleteAttribute

TypeName

ProvideObsoleteAttributeMessage

CheckId

CA1041

Kategoria

Microsoft.Design

Zmiana kluczowa

Niekluczowa

Przyczyna

Typ lub element członkowski jest oznaczony za pomocą atrybutu ObsoleteAttribute, który nie posiada określonej właściwości ObsoleteAttribute.Message.

Opis reguły

ObsoleteAttribute służy do oznaczania typów oraz elementów członkowskich z przestarzałej biblioteki.Użytkownicy biblioteki powinni unikać używania jakichkolwiek typów lub elementów członkowskich, które są oznaczone jako przestarzałe.Jest tak, ponieważ mogą nie być obsługiwane i ewentualnie mogą być usunięte z późniejszych wersji biblioteki.Podczas kompilowania typu lub elementu członkowskiego, który jest oznaczony za pomocą ObsoleteAttribute wyświetlana jest właściwość Message atrybutu.Dostarcza to informacje użytkownika o przestarzałym typie lub elemencie członkowskim.Informacje te obejmują zazwyczaj, jak długo przestarzały typ lub element członkowski będzie obsługiwany przez projektantów biblioteki oraz preferowane zastępstwo za niego.

Jak naprawić naruszenia

Aby naprawić naruszenie tej zasady, należy dodać parametr message do konstruktora ObsoleteAttribute.

Kiedy pominąć ostrzeżenia

Nie należy pomijać ostrzeżenia dotyczącego tej reguły, ponieważ właściwość Message dostarcza krytyczne informacje na temat przestarzałego typu lub elementu członkowskiego.

Przykład

Poniższy przykład pokazuje przestarzały element członkowski, który poprawnie zadeklarował 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";
            }
        }
    };
}

Zobacz też

Informacje

ObsoleteAttribute