title: WCF Service reference in WCF not getting method type correct
body: <p>WCF service library specifies:</p>
  
  <pre><code>[OperationContract]
  void SaveData(IDictionary visitorData);
  </code></pre>
  
  <p>Adding a service reference in the consuming MVC project to the wcf library (must uncheck "Reuse types in referenced assemblies" to make it generate code) causes it to generate the following in Reference.cs:</p>
  
  <pre><code>public void SaveData(System.Collections.Generic.Dictionary&lt;object, object&gt; visitorData) {
      base.Channel.SaveData(visitorData);
  }
  </code></pre>
  
  <p>As a result, when I call </p>
  
  <pre><code>visitorActions.SaveData(requestInfo);
  </code></pre>
  
  <p>(with <code>requestInfo</code> of type <code>IDictionary</code>) I get, to my utter lack of surprise, the following compiler error:</p>
  
  <blockquote>
    <p>Argument 1: cannot convert from 'System.Collections.IDictionary' to 'System.Collections.Generic.Dictionary'...</p>
  </blockquote>
  
  <p>Yes, I can go in and change the code to explicitly say <code>IDictionary</code> but <code>Reference.cs</code> is autogenerated and the next time I update from the service, my changes will be gone. </p>
  
  <p>So what gives?</p>