In asking my question I found the right terminology to find the answer in google.
From .Net 2.0 onwards the framework has supported "Version Tolerant Serialization".
This provides a number of tools for managing serialisation and deserialisation of object of different versions.
These includes attributes such as
OptionalField
,
OnDeserializing
,
OnDeserialized
,
OnSerializing
and
OnSerialized
.
http://msdn.microsoft.com/en-us/library/ms229752(v=vs.100).aspx[
^]