У меня возникают проблемы с Предупреждение FxCop CA1006, Microsoft.Design "DoNotNestGenericTypesInMemberSignatures". В частности, я разрабатываю класс ReportCollection<T>
, который наследует от ReadOnlyCollection<Report<T>>
, а его конструктор public
принимает IList<Report<T>>
в качестве параметра.
Предложение по исправлению этого предупреждения не очень полезно:
"Чтобы устранить нарушение этого правила, измените дизайн, чтобы удалить аргумент вложенного типа." До сих пор я вижу два способа изменить дизайн, как это было предложено:
- Сделайте конструктор
internal
. Это не работает в моем случае. Конструктор должен бытьpublic
, потому что этот класс коллекции должен быть экземпляром кода вне сборки. - Сделайте конструктор вместо
IList<Report<T>>
вместоReport<T>[]
. Это неоптимально, поскольку внешний код должен обладать гибкостью использования структур данных с динамическим размером, таких какList<T>
вместо массивов фиксированного размера.
В этот момент я отказался и подавил это предупреждение. Есть ли лучшее решение?