title: Deserializing Objects With New members
body: <p>According to a mspress book (MCTS for Exam 70-536 .NET 2.0):</p>
  
  <blockquote>
    <p>You might have version compatibility issues if you ever attempt to deserialize an object that has been serialized by an earlier version of your application. Specifically, if you add a member to a custom class and attempt to deserialize an object that lacks that member, the runtime will throw an exception. In other words, if you add a member to a class in version 3.1 of your application, it will not be able to deserialize an object created by version 3.0 of your application.</p>
  </blockquote>
  
  <p>Now... As curious as I am I went and created a project, serialized a class, added a new member and attempted to deserialize the class to the new object. To my surprise it worked and the newly created member was set to null by default (even if it had another default value).</p>
  
  <p>I first tried adding a String as the new member, seeing that worked I then changed it to another custom class and it still worked.</p>
  
  <p>Is the mspress wrong? Or is this behavior customizable?</p>
  
  <p>Please note that I am <strong>NOT</strong> using XML serialization. I'm using BinaryFormatter Serialization.</p>