title: Constructor not found during deserialization?
body: <p>Given the following example:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Runtime.Serialization.Formatters.Binary;
  using System.IO;
  
  namespace SerializationTest
  {
      [Serializable]
      class Foo : Dictionary&lt;int, string&gt;
      {
      }
  
      class Program
      {
          static void Main(string[] args)
          {
              Foo foo = new Foo();
              foo[1] = "Left";
              foo[2] = "Right";
  
              BinaryFormatter formatter = new BinaryFormatter();
              MemoryStream stream = new MemoryStream();
  
              formatter.Serialize(stream, foo);
              stream.Seek(0, SeekOrigin.Begin);
              formatter.Deserialize(stream);
          }
      }
  }
  </code></pre>
  
  <p>In the last line, a SerializationException is thrown because the formatter can't find the constructor to Foo. Why is that?</p>