Condividi tramite


CA1041: Fornire una proprietà ObsoleteAttribute.Message

TypeName

ProvideObsoleteAttributeMessage

CheckId

CA1041

Category

Microsoft.Design

Breaking Change

Non sostanziale

Causa

Un tipo o un membro è contrassegnato con un attributo System.ObsoleteAttribute per cui non è specificata la proprietà ObsoleteAttribute.Message.

Descrizione della regola

L'oggetto ObsoleteAttribute è utilizzato per contrassegnare tipi e membri di libreria deprecati.Gli utenti della libreria dovrebbero evitare l'utilizzo di qualsiasi tipo o membro contrassegnato come obsoleto.Questo si verifica perché potrebbe non essere supportato e venire rimosso dalle versioni successive della libreria.Quando viene compilato un membro o un tipo contrassegnato utilizzando ObsoleteAttribute, viene visualizzata la proprietà Message dell'attributo.In questo modo vengono fornite le informazioni utente sul tipo o sul membro obsoleto.Queste informazioni includono in genere per quanto tempo il tipo o il membro obsoleto verrà supportato dai progettisti di librerie e l'elemento sostitutivo consigliato da utilizzare.

Come correggere le violazioni

Per correggere una violazione di questa regola, aggiungere il parametro message al costruttore ObsoleteAttribute.

Esclusione di avvisi

Non escludere un avviso da questa regola poiché la proprietà Message fornisce informazioni essenziali sul tipo o membro obsoleto.

Esempio

Nell'esempio seguente viene illustrato un membro obsoleto che dispone di un oggetto ObsoleteAttribute dichiarato in modo corretto.

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

Vedere anche

Riferimenti

System.ObsoleteAttribute