title: Cannot resolve Dictionary in Unity container
body: <p>I've just stumbled upon this:</p>
  
  <p>within a Unity container, I want to register <code>IDictionary&lt;TK, TV&gt;</code>; assume that it's <code>IDictionary&lt;string, int&gt;</code></p>
  
  <pre><code>_unityContainer = new UnityContainer()
      .RegisterType&lt;IDictionary&lt;string, int&gt;, Dictionary&lt;string, int&gt;&gt;();
  </code></pre>
  
  <p>but if I try</p>
  
  <pre><code>var d = _unityContainer.Resolve&lt;IDictionary&lt;string, int&gt;&gt;();
  </code></pre>
  
  <p>it fails to resolve...</p>
  
  <p>I get...</p>
  
  <p>Microsoft.Practices.Unity.ResolutionFailedException:  Microsoft.Practices.Unity.ResolutionFailedException: Resolution of the dependency failed, type = "System.Collections.Generic.IDictionary`2[System.String,System.Int32]", name = "(none)".
  Exception occurred while: while resolving.</p>
  
  <p>Exception is: InvalidOperationException - The type Dictionary`2 has multiple constructors of length 2. Unable to disambiguate.</p>
  
  <hr>
  
  <p>At the time of the exception, the container was:</p>
  
  <p>Resolving System.Collections.Generic.Dictionary<code>2[System.String,System.Int32],(none) (mapped from System.Collections.Generic.IDictionary</code>2[System.String,System.Int32], (none))
   --->  System.InvalidOperationException: The type Dictionary`2 has multiple constructors of length 2. Unable to disambiguate..</p>
  
  <p>So it looks like it has found the Type to resolve (being <code>Dictionary&lt;string, int&gt;</code>) but failed to new it up...</p>
  
  <p>How come unity can't resolve this type? If I type</p>
  
  <pre><code>IDictionary&lt;string, int&gt; d = new Dictionary&lt;string, int&gt;()
  </code></pre>
  
  <p>that works...</p>
  
  <p>any ideas?</p>
  
  <p>thanks!</p>