Partager via


Fournir un message ObsoleteAttribute

Mise à jour : novembre 2007

TypeName

ProvideObsoleteAttributeMessage

CheckId

CA1041

Catégorie

Microsoft.CSharp

Modification avec rupture

Modification sans rupture

Cause

Un type ou un membre est marqué avec un attribut System.ObsoleteAttribute dont la propriété ObsoleteAttribute.Message n'est pas spécifiée.

Description de la règle

ObsoleteAttribute est utilisé pour marquer des types et des membres de bibliothèque désapprouvés. Les consommateurs de bibliothèque doivent éviter d'utiliser tout type ou membre marqué comme obsolète ; en effet, ceux-ci peuvent ne pas être pris en charge et être à terme supprimés de versions ultérieures de la bibliothèque. Lorsqu'un type ou membre marqué avec ObsoleteAttribute est compilé, la propriété Message de l'attribut est affichée, fournissant à l'utilisateur des informations sur le type ou le membre obsolète. Ces informations incluent généralement la durée de prise en charge à courir du type ou du membre obsolète par les concepteurs de bibliothèque et la méthode de substitution qu'il est préférable d'utiliser.

Comment corriger les violations

Pour corriger une violation de cette règle, ajoutez le paramètre message au constructeur ObsoleteAttribute.

Quand supprimer les avertissements

Ne supprimez pas d'avertissement de cette règle car la propriété Message fournit des informations essentielles sur le type ou le membre obsolète.

Exemple

L'exemple suivant présente un membre obsolète doté d'un ObsoleteAttribute correctement déclaré.

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

Voir aussi

Référence

System.ObsoleteAttribute