我遇到了FxCop 警告 CA1006、Microsoft.Design “DoNotNestGenericTypesInMemberSignatures”的问题。具体来说,我正在设计一个ReportCollection<T>
继承自 的类,ReadOnlyCollection<Report<T>>
其public
构造函数以 aIList<Report<T>>
作为参数。
修复此警告的建议不是很有用:
“要修复违反此规则的行为,请更改设计以删除嵌套类型参数。” 到目前为止,我可以看到有两种方法可以按照建议更改设计:
- 制作构造函数
internal
。这在我的情况下不起作用。构造函数必须是public
因为这个集合类需要被程序集外部的代码实例化。 - 使构造函数采用 a
Report<T>[]
而不是IList<Report<T>>
. 这是次优的,因为外部代码应该具有使用动态大小的数据结构List<T>
而不是固定大小的数组的灵活性。
在这一点上,我已经放弃并压制了这个警告。有更好的解决方案吗?