title: Unable to deserialize classes with multiple constructors with Json.NET
body: <p>I have a type that I don't control with multiple constructors, equivalent to this one:</p>
  
  <pre><code>    public class MyClass
      {
          private readonly string _property;
  
          private MyClass()
          {
              Console.WriteLine("We don't want this one to be called.");
          }
  
          public MyClass(string property)
          {
              _property = property;
          }
  
          public MyClass(object obj) : this(obj.ToString()) {}
  
          public string Property
          {
              get { return _property; }
          }
  
      }
  </code></pre>
  
  <p>Now when I try to deserialize it, the private parameterless constuctor is called and the property is never set. The test:</p>
  
  <pre><code>    [Test]
      public void MyClassSerializes()
      {
          MyClass expected = new MyClass("test");
          string output = JsonConvert.SerializeObject(expected);
          MyClass actual = JsonConvert.DeserializeObject&lt;MyClass&gt;(output);
          Assert.AreEqual(expected.Property, actual.Property);
      }
  </code></pre>
  
  <p>gives the following output:</p>
  
  <pre><code>We don't want this one to be called.
  
    Expected: "test"
    But was:  null
  </code></pre>
  
  <p>How can I fix it, without changing the definition of <code>MyClass</code>? Also, this type is a key deep in the definition of the objects that I really need to serialize.</p>