次の方法で共有


CA1041: ObsoleteAttribute メッセージを指定します

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