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