Поделиться через


Укажите сообщение ObsoleteAttribute

Обновлен: Ноябрь 2007

TypeName

ProvideObsoleteAttributeMessage

CheckId

CA1041

Категория

Microsoft.Design

Критическое изменение

Не критическое

Причина

Тип или член помечен атрибутом System.ObsoleteAttribute, для которого не указано свойство ObsoleteAttribute.Message.

Описание правила

Атрибут ObsoleteAttribute применяется к устаревшим типам или членам библиотеки. Пользователям библиотек следует избегать использования типов и членов, помеченных как устаревшие, поскольку они могут не поддерживаться. Кроме того, существует вероятность удаления таких типов и членов из будущих версий библиотеки. При компиляции типа или члена, помеченного атрибутом ObsoleteAttribute, отображается текст свойства Message этого атрибута, сообщающий о том, что данный тип или член устарел. В этой информации, как правило, сообщается, как долго устаревший тип или член будет поддерживаться разработчиками и какой компонент следует использовать вместо него.

Предотвращение нарушений

Чтобы устранить нарушение данного правила, добавьте параметр message в конструктор ObsoleteAttribute.

Отключение предупреждений

Не следует отключать предупреждения о нарушении данного правила, поскольку в свойстве Message содержится важная информация об устаревшем типе или члене.

Пример

В следующем примере показан устаревший член с правильно объявленным атрибутом 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";
            }
        }
    };
}

См. также

Ссылки

System.ObsoleteAttribute