title: Upgrade of NewtonSoft JSON.NET not implicitly serialising protected members
body: <p>I have just updated my version of NewtonSoft JSON.NET from version 3.0.0 to 3.5.0 and I have noticed that protected members are not implicitly serialised.</p>
  
  <p>I have the following class:</p>
  
  <pre><code>public class SimpleFileContainer : IDto
  {
      public virtual string Name { get; protected set; }
  
      public virtual string Path { get; protected set; }
  
      public SimpleFileContainer(string name, string path)
      {
          Name = name;
          Path = path;
      }
  }
  </code></pre>
  
  <p>The following test code does not pass</p>
  
  <pre><code>var json = JsonConvert.SerializeObject(new SimpleFileContainer("Name", "Path"));
  
  var deserialised = JsonConvert.DeserializeObject&lt;SimpleFileContainer &gt;(json);
  
  Assert.That(deserialised.Name, Is.EqualTo("Name");
  </code></pre>
  
  <p>both the Name and Path properties are null unless I either make the property sets public or add update the class with the following attributes:</p>
  
  <pre><code>[JsonObject(MemberSerialization.OptOut)]
  public class SimpleFileContainer : IDto
  {
      [JsonProperty]
      public virtual string Name { get; protected set; }
  
      [JsonProperty]
      public virtual string Path { get; protected set; }
  
      public SimpleFileContainer(string name, string path)
      {
          Name = name;
          Path = path;
      }
  }
  </code></pre>
  
  <p>This is a reasonably sized project that uses the serialization process a lot, I do not want to go through the code adding these attributes to every class and member.</p>
  
  <p>Is there a way round this?</p>