title: Json.NET deserializing custom object returns null
body: <p>I am having trouble in converting a JSON string to a C# object with Json.NET.</p>
  
  <p>I used the AJAX call .ashx</p>
  
  <pre><code>$.ajax({
      url: "/Handler/Handler.ashx?WorkType=SaveData",
      type: "POST",
      data: JSON.stringify({ 'DataInfo': Info }),
      //data: "{'DataInfo':" + JSON.stringify(Info) + "}",
      dataType: "json",
      success: function (data, textStatus, jqXHR) {
          if (data.Result) {
  
          }
      },
      error: function (jqXHR, textStatus, errorThrown) {
          alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
      }
  });
  </code></pre>
  
  <p>And my Json String is like</p>
  
  <pre><code>{
     "DataInfo": [
        {
           "EditType": "Create",
           "CustCode": "SSG",
           "KeyNoStr": "rgrg",
           "Requester": "rgrg",
           "VerificationCode": "VAVBZ",
           "Databody": "TESt123",
           "HasMap": false,
           "IsColse": false,
           "HasOrder": false,
           "IsUrgent": true
        }
     ]
  }
  </code></pre>
  
  <p>and my .ashx Server side code is like..</p>
  
  <pre><code>public class DataInfo
  {
      public string EditType { get; set; } 
      public string CustCode { get; set; }
      public string KeyNoStr { get; set; }
      public string Requester { get; set; }
      public string VerificationCode { get; set; }
      public string Databody { get; set; }
      public string HasMap { get; set; }
      public string IsColse { get; set; }
      public string HasOrder { get; set; }            
      public string IsUrgent { get; set; }
  }
  </code></pre>
  
  <p>main function in .ashx </p>
  
  <pre><code>public void ProcessRequest(HttpContext context)
  {
      Request = context.Request;
      Response = context.Response;
  
      string lv_strResult = string.Empty;
  
      DataInfo lv_oInfo = JsonConvert.DeserializeObject&lt;DataInfo &gt;((new StreamReader(Request.InputStream)).ReadToEnd());
  }
  </code></pre>
  
  <p>What I am doing wrong?</p>