title: Json.net override method in DefaultContractResolver to deserialize private setters
body: <p>I have a class with <code>properties</code> that have private setters and i would like for those properties to be deSerialized using <code>Json.Net</code>. i know that i can use the <code>[JsonProperty]</code> attribute to do this bit i want to do this by implementing the <code>DefaultContractResolver</code>. 
  Here is some example code i have been using but this dosent work.</p>
  
  <pre><code>static void Main(string[] args)
  {
      var a = new a();
      a.s = "somestring";
      a.set();
      Console.WriteLine(JsonConvert.SerializeObject(a));
      var strrr = JsonConvert.SerializeObject(a);
  
      var strobj = JsonConvert.DeserializeObject&lt;a&gt;(strrr,new                        JsonSerializerSettings
      {
          ContractResolver = new PrivateSetterContractResolver()
      });
      Console.Read();
  }
  </code></pre>
  
  <p>this is the class i want to serialize</p>
  
  <pre><code>public class a
  {
      private int test;
      public int Test
      {
          get { return test; }
          private set { test = value; }
      }
      public string s { get; set; }
  
      public void set()
      {
          test = 33;
      }
  }
  </code></pre>
  
  <p>this is the implementation of <code>DefaultContractResolver</code></p>
  
  <pre><code>public class PrivateSetterContractResolver : DefaultContractResolver
  {
      protected override List&lt;MemberInfo&gt; GetSerializableMembers(Type objectType)
      {
          // whait do i do here ??? 
  
          //this dosent work
          return new List&lt;MemberInfo&gt;(objectType.GetProperties().ToList());
  
      }
  }
  </code></pre>