Freigeben über


CA1041: ObsoleteAttribute-Meldung bereitstellen

TypeName

ProvideObsoleteAttributeMessage

CheckId

CA1041

Kategorie

Microsoft.Design

Unterbrechende Änderung

Nicht unterbrechend

Ursache

Ein Typ oder Member ist durch ein System.ObsoleteAttribute-Attribut markiert, dessen ObsoleteAttribute.Message-Eigenschaft nicht festgelegt wurde.

Regelbeschreibung

ObsoleteAttribute wird verwendet, um veraltete Bibliothekstypen und Member zu markieren.Bibliotheksconsumer sollten die Verwendung von Typen oder Membern vermeiden, die als veraltet markiert sind.Das liegt daran, dass es eventuell nicht unterstützt und in späteren Versionen der Bibliothek möglicherweise nicht mehr enthalten sein wird.Wenn ein Typ oder ein Member, der mit ObsoleteAttribute markiert wurde, kompiliert wird, wird die Message-Eigenschaft des Attributs angezeigt.Auf diese Weise erhält der Benutzer Informationen zum veralteten Typ oder Member.Diese Informationen enthalten im Allgemeinen Angaben darüber, wie lange der veraltete Typ oder Member von den Bibliotheksentwicklern noch unterstützt wird und durch welches Element er ersetzt werden soll.

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, fügen Sie den message-Parameter dem ObsoleteAttribute-Konstruktor hinzu.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel, da die Message-Eigenschaft wichtige Informationen über den veralteten Typ oder Member bereitstellt.

Beispiel

Im folgenden Beispiel wird ein veralteter Member veranschaulicht, der über einen ordnungsgemäß deklarierten ObsoleteAttribute verfügt.

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

Siehe auch

Referenz

System.ObsoleteAttribute