The XmlSerializer doesn't save read only properties. It only saves public read/write properties. The BinaryFormatter can though. It serializes private fields unlike the XmlSerializer.