Partager via


CA1041 : Fournir un message ObsoleteAttribute

TypeName

ProvideObsoleteAttributeMessage

CheckId

CA1041

Catégorie

Microsoft.CSharp

Modification avec rupture

Modification sans rupture

Cause

Un type ou un membre est marqué à l'aide d'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éconseillés. Les consommateurs de la bibliothèque doivent éviter l'utilisation d'un type ou d'un membre marqué comme obsolète. En effet, il ne sera peut-être plus pris en charge et sera par la suite supprimé des versions ultérieures de la bibliothèque. Quand un type ou un membre marqué à l'aide de ObsoleteAttribute est compilé, la propriété Message de l'attribut s'affiche. Cela fournit à 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 parce que la propriété Message fournit des informations essentielles sur le type ou le membre obsolète.

Exemple

L'exemple suivant indique un membre obsolète qui a un attribut 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