title: Can I instruct Json.NET to deserialize, but not serialize, specific properties?
body: <p>I have an AngularJS + MVC 5 + Web API 2 app that allows users to manage collections of objects in the browser and commit all changes at once when a Save button is clicked.  As changes are made, one or more properties are added to the JavaScript objects: IsAdded, IsUpdated, IsRemoved.  The properties are checked server-side to determine what to do when persisting the model.</p>
  
  <p>The model is served up using Json.NET via Web API, and the base class is:</p>
  
  <pre><code>public class CollectionItemViewModel : ICollectionItem
  {
      public bool IsAdded { get; set; }
      public bool IsUpdated { get; set; }
      public bool IsRemoved { get; set; }
  }
  </code></pre>
  
  <p>This works great, but adds cruft to my serialized JSON.  I can choose to not serialize these three properties with <a href="http://james.newtonking.com/archive/2010/04/16/json-net-3-5-release-7-bson-binary-json-part-deux" rel="noreferrer">ShouldSerialize</a>, but that also prevents them from deserializing.</p>
  
  <pre><code>public bool ShouldSerializeIsAdded()
  {
      return false;
  }
  
  public bool ShouldSerializeIsUpdated()
  {
      return false;
  }
  
  public bool ShouldSerializeIsRemoved()
  {
      return false;
  }
  </code></pre>
  
  <p>Is it possible to deserialize, but not serialize, specific properties using Json.NET?</p>