多数のコントローラーとメソッドを含む Web API プロジェクトを考えてみましょう。この API は、データ転送オブジェクト パターンを使用して、クライアントからデータを取得し、結果を返します。これらの DTO オブジェクトは、API の観点から見た実装の詳細であるため、internal
外部コードがそれらを表示または呼び出すことができないようにマークされています。CA1811 警告の dtos のプロパティに抑制属性を配置する必要がないようにするにはどうすればよいget
ですか?set
現在、クラスが「読み取り」dto、「書き込み」dto、またはその両方であるかどうかに応じて、各プロパティの警告を抑制する必要があります。このような場合、json シリアライザーはプロパティに依存するため、プロパティが存在する必要があります。
クラスをマークしてクラスを開きたくありません。これはpublic
、API プロジェクトだけが知っておくべき何かを公開しているためです。静的ツールは、一部のクラスまたはフィールドが使用されていないかどうかを判断できません。それ以外の場合は、外部からそれらを使用している可能性があります。
DTO を別のプロジェクトに移行して、そこで警告を無効にすることもできますが、それらpublic
を再度マークするか、または を追加しInternalsVisibleTo
て、api プロジェクトがそれらを認識できるようにする必要があります。