title: WCF serialization problem using NameValueCollection
body: <p>I'm trying to serialize a NameValueCollection over WCF. I keep getting exceptions telling me to add one type after another. After adding them, I finally get </p>
  
  <blockquote>
    <p>Type 'System.Object[]' cannot be added to list of known types since another type 'System.Collections.ArrayList' with the same data contract name '<a href="http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfanyType" rel="noreferrer">http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfanyType</a>' is already present.</p>
  </blockquote>
  
  <p>The contract now looks like this:</p>
  
  <pre><code>[KnownType(typeof(NameValueCollection))]
  [KnownType(typeof(CaseInsensitiveHashCodeProvider))]
  [KnownType(typeof(CaseInsensitiveComparer))]
  [KnownType(typeof(string[]))]
  [KnownType(typeof(Object[]))]
  [KnownType(typeof(ArrayList))]
  [DataContract]
  public class MyClassDataBase
  {
      [DataMember]
      public NameValueCollection DataCollection = new NameValueCollection();
  }
  </code></pre>
  
  <p>I really dont know what to do to be able to serialize my NameValueColletion. </p>
  
  <p>Another strange thing is that the compiler warns that the CaseInsensitiveHashCodeProvider is deprecated.</p>