Condividi tramite


Fornire una proprietà ObsoleteAttribute.Message

Aggiornamento: novembre 2007

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 obsoleti. I consumer di librerie devono evitare di utilizzare qualsiasi tipo o membro contrassegnato come obsoleto, poiché potrebbe non essere supportato e venire rimosso dalle versioni successive della libreria. Quando viene compilato un membro o un tipo contrassegnato con ObsoleteAttribute, viene visualizzata la proprietà Message dell'attributo che fornisce all'utente le informazioni sul tipo o 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.

Correzione di 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 riportato di seguito viene illustrato un membro obsoleto con una proprietà dichiarata 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";
            }
        }
    };
}

Vedere anche

Riferimenti

System.ObsoleteAttribute