title: Are there any good workarounds for FxCop warning CA1006?
body: <p>I am having trouble with <a href="http://msdn.microsoft.com/en-us/library/ms182144.aspx" rel="noreferrer" title="FxCop warning CA1006">FxCop warning CA1006</a>, Microsoft.Design "DoNotNestGenericTypesInMemberSignatures". Specifically, I am designing a <code>ReportCollection&lt;T&gt;</code> class that inherits from <code>ReadOnlyCollection&lt;Report&lt;T&gt;&gt;</code>, and its <code>public</code> constructor takes an <code>IList&lt;Report&lt;T&gt;&gt;</code> as a parameter.</p>
  
  <p>The suggestion for fixing this warning is not very useful:</p>
  
  <blockquote>
    <p>"To fix a violation of this rule, change the design to remove the nested type argument." There are two ways I can see so far to change the design as suggested:</p>
  </blockquote>
  
  <ol>
  <li>Make the constructor <code>internal</code>. This doesn't work in my case. The constructor must be <code>public</code> because this collection class needs to be instantiable by code outside the assembly.</li>
  <li>Make the constructor take a <code>Report&lt;T&gt;[]</code> instead of an <code>IList&lt;Report&lt;T&gt;&gt;</code>. This is sub-optimal because external code should have the flexibility of using dynamically-sized data structures like <code>List&lt;T&gt;</code> instead of fixed-size arrays.</li>
  </ol>
  
  <p>At this point, I have given up and suppressed this warning. Is there a better solution?</p>