title: Casting interfaces for deserialization in JSON.NET
body: <p>I am trying to set up a reader that will take in JSON objects from various websites (think information scraping) and translate them into C# objects.  I am currently using JSON.NET for the deserialization process.  The problem I am running into is that it does not know how to handle interface-level properties in a class.  So something of the nature:</p>
  
  <pre><code>public IThingy Thing
  </code></pre>
  
  <p>Will produce the error:</p>
  
  <blockquote>
    <p>Could not create an instance of type IThingy. Type is an interface or abstract class and cannot be instantiated.</p>
  </blockquote>
  
  <p>It is relatively important to have it be an IThingy as opposed to a Thingy since the code I am working on is considered sensitive and unit testing is highly important.  Mocking of objects for atomic test scripts is not possible with fully-fledged objects like Thingy.  They must be an interface.</p>
  
  <p>I've been poring over JSON.NET's documentation for a while now, and the questions I could find on this site related to this are all from over a year ago.  Any help?</p>
  
  <p>Also, if it matters, my app is written in .NET 4.0.</p>