title: No parameterless constructor defined for type of 'System.String' during JSON deserialization
body: <p>This seems like it should be so easy, but I am getting an exception when I try to <a href="http://msdn.microsoft.com/en-us/library/bb355316.aspx" rel="noreferrer">deserialize</a> some straightforward JSON into a managed type. The exception is:</p>
  
  <blockquote>
    <p>MissingMethodException<br>
    No parameterless constructor defined for type of 'System.String'</p>
  </blockquote>
  
  <p>While it is true that there are no parameterless constructors for System.String, I'm not clear as to why this matters.</p>
  
  <p>The code that performs the deserialization is: </p>
  
  <pre><code>using System.Web.Script.Serialization;
  private static JavaScriptSerializer serializer = new JavaScriptSerializer();
  public static MyType Deserialize(string json)
  {
      return serializer.Deserialize&lt;MyType&gt;(json);
  }
  </code></pre>
  
  <p>My type is roughly:</p>
  
  <pre><code>public class MyType
  {
      public string id { get; set; }
      public string type { get; set; }
      public List&lt;Double&gt; location { get; set; }
      public Address address { get; set; }
      public Dictionary&lt;string, string&gt; localizedStrings { get; set; }
  }
  </code></pre>
  
  <p>The other class is for an address:</p>
  
  <pre><code>public class Address
  {
      public string addressLine { get; set; }
      public string suite { get; set; }
      public string locality { get; set; }
      public string subdivisionCode { get; set; }
      public string postalCode { get; set; }
      public string countryRegionCode { get; set; }
      public string countryRegion { get; set; }
  }
  </code></pre>
  
  <p>Here's the JSON:</p>
  
  <pre><code>{
      "id": "uniqueString",
      "type": "Foo",
      "location": [
          47.6,
          -122.3321
      ]
      "address": {
          "addressLine": "1000 Fourth Ave",
          "suite": "en-us",
          "locality": "Seattle",
          "subdivisionCode": "WA",
          "postalCode": "98104",
          "countryRegionCode": "US",
          "countryRegion": "United States"
      },
      "localizedStrings": {
          "en-us": "Library",
          "en-ES": "La Biblioteca"
      }
  }
  </code></pre>
  
  <p>I get the same exception even if my JSON is just:</p>
  
  <pre><code>{
      "id": "uniquestring"
  }
  </code></pre>
  
  <p>Can anybody tell me why a parameterless constructor is needed for System.String?</p>