次の方法で共有


ObsoleteAttribute メッセージを表示します

更新 : 2007 年 11 月

TypeName

ProvideObsoleteAttributeMessage

CheckId

CA1041

カテゴリ

Microsoft.Design

互換性に影響する変更点

なし

原因

型またはメンバが System.ObsoleteAttribute 属性でマークされていますが、この属性で ObsoleteAttribute.Message プロパティが指定されていません。

規則の説明

ObsoleteAttribute は、ライブラリの型とメンバを旧式とマークするときに使用されます。ライブラリでは、旧式とマークされている型またはメンバを使用しないでください。サポートされないことがあるためと、今後のライブラリから最終的に削除されるためです。ObsoleteAttribute でマークされている型またはメンバをコンパイルすると、属性の Message プロパティが表示されます。これによって、ユーザーは旧式の型またはメンバに関する情報を知ることができます。この情報には、一般に、ライブラリ デザイナが旧式の型またはメンバをサポートする予定期間、および推奨される置き換えなどが含まれます。

違反の修正方法

この規則違反を修正するには、ObsoleteAttribute コンストラクタに message パラメータを追加します。

警告を抑制する状況

この規則による警告は抑制しないでください。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