title: Deserialize collection of interface-instances?
body: <p>I would like to serialize this code via json.net:</p>
  
  <pre><code>public interface ITestInterface
  {
      string Guid {get;set;}
  }
  
  public class TestClassThatImplementsTestInterface1
  {
      public string Guid { get;set; }
  }
  
  public class TestClassThatImplementsTestInterface2
  {
      public string Guid { get;set; }
  }
  
  
  public class ClassToSerializeViaJson
  {
      public ClassToSerializeViaJson()
      {             
           this.CollectionToSerialize = new List&lt;ITestInterface&gt;();
           this.CollectionToSerialize.add( new TestClassThatImplementsTestInterface2() );
           this.CollectionToSerialize.add( new TestClassThatImplementsTestInterface2() );
      }
      List&lt;ITestInterface&gt; CollectionToSerialize { get;set; }
  }
  </code></pre>
  
  <p>I want to serialize/deserialize ClassToSerializeViaJson with json.net. Serialization is working, but deserialization gives me this error:</p>
  
  <blockquote>
    <p>Newtonsoft.Json.JsonSerializationException: Could not create an instance of type ITestInterface. Type is an interface or abstract class and cannot be instantiated.</p>
  </blockquote>
  
  <p>So how can I deserialize the <code>List&lt;ITestInterface&gt;</code> collection?</p>