title: Json.Net cannot deserialize objects with multiple generic types?
body: <p>I'm trying to serialize and deserialize a property of the type <code>Dictionary&lt;string, int&gt;</code> when sending data from a server to a client.</p>
  
  <p><strong>So if i serialize this simplified object:</strong></p>
  
  <pre><code>class Foo
  {
    public Dictionary&lt;string, int&gt; Bar { get; set; }
  }
  </code></pre>
  
  <p><strong>I get this nice json (using TypeNameHandling.All):</strong></p>
  
  <pre><code>{
    "$type": "Foo",
    "Bar": {
      "$type": "Dictionary&lt;String, Int32&gt;"
    }
  }
  </code></pre>
  
  <p>The problem is on the deserializing side where I use a custom Binder overriding the <em>BindToType</em> to deserialize. But when doing so, the <em>typeName</em> is not correct and i get a <code>"Dictionary&lt;String"</code> instead.</p>
  
  <pre><code>public override Type BindToType(string assemblyName, string typeName)
  {
    if (typeName == "Dictionary&lt;String, Int32&gt;")
    {
      // I never get here because typeName is "Dictionary&lt;String"
      return typeof(Dictionary&lt;string, int&gt;);
    }
    // ...
  }
  </code></pre>