FxCop警告CA1006、Microsoft.Design「DoNotNestGenericTypesInMemberSignatures」で問題が発生しました。具体的には、ReportCollection<T>
から継承するクラスを設計してReadOnlyCollection<Report<T>>
おり、そのpublic
コンストラクターはIList<Report<T>>
パラメーターとしてを取ります。
この警告を修正するための提案はあまり役に立ちません。
「このルールの違反を修正するには、ネストされた型の引数を削除するようにデザインを変更してください。」提案されているようにデザインを変更するには、これまでに2つの方法があります。
- コンストラクターを作成し
internal
ます。私の場合、これは機能しません。public
このコレクションクラスは、アセンブリの外部のコードによってインスタンス化できる必要があるため、コンストラクターが必要です。 - コンストラクターに。の
Report<T>[]
代わりにを使用させIList<Report<T>>
ます。List<T>
外部コードには、固定サイズの配列の代わりに動的なサイズのデータ構造を使用できる柔軟性が必要であるため、これは最適ではありません。
この時点で、私はこの警告をあきらめて抑制しました。より良い解決策はありますか?