次の方法で共有


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

プロパティ
ルール ID CA1041
Title ObsoleteAttribute メッセージを指定します
[カテゴリ] デザイン
修正が中断ありか中断なしか なし
.NET 8 では既定で有効 提案として

原因

その System.ObsoleteAttribute.Message プロパティが指定されていない System.ObsoleteAttribute 属性を使用することで、ある型またはメンバーにマークが付けられています。

既定では、この規則の対象は外部から参照可能な型とメンバーのみですが、これは構成可能です。

規則の説明

ObsoleteAttribute を使用し、非推奨のライブラリの型とメンバーにマークを付けます。 ライブラリを使用する場合、非推奨のマークが付いている型とメンバーは使用しないでください。 サポートされていない可能性があり、いずれ、最新版のライブラリから削除されるためです。 ObsoleteAttribute を使用することでマークが付けられている型またはメンバーがコンパイルされると、属性の Message プロパティが表示されます。 これによって、ユーザーは旧式の型またはメンバーに関する情報を知ることができます。 この情報には一般的に、非推奨の型またはメンバーがライブラリ デザイナーによってサポートされる期間と、使用が推奨される代替が含まれています。

違反の修正方法

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

どのようなときに警告を抑制するか

Message プロパティからは非推奨の型またはメンバーに関する重要な情報が提供されるため、この規則からの警告は非表示にしないでください。

分析するコードを構成する

次のオプションを使用して、コードベースのどの部分に対してこの規則を実行するか構成します。

このオプションを構成できる対象は、この規則だけ、それを適用するすべての規則、それを適用するこのカテゴリ (デザイン) のすべての規則のいずれかです。 詳細については、「コード品質規則の構成オプション」を参照してください。

特定の API サーフェイスを含める

ユーザー補助に基づいて、この規則を実行するコードベースの部分を構成できます。 たとえば、非パブリック API サーフェイスでのみ規則を実行するように指定するには、プロジェクトの .editorconfig ファイルに次のキーと値のペアを追加します。

dotnet_code_quality.CAXXXX.api_surface = private, internal

次の例からは、ObsoleteAttribute が正しく宣言されている非推奨メンバーを確認できます。

[ObsoleteAttribute("This property is obsolete and will be removed in a " +
"future version. Use the FullName property instead.", false)]
public string Name
{
    get => "Name";
}
Imports System

Namespace ca1041

    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

関連項目