
Explanation/Reference:
Target 1: IExtensibleDataObject
Implement the IExtensibleDataObject interface to store the extra data for future versions.
Target 2: ExtensionDataObject
To implement the IExtensibleDataObject interface, you must implement the ExtensionData property. The property holds data from future versions of the class for backward compatibility.
Example code:
[DataContract]
class Person : IExtensibleDataObject
{
private ExtensionDataObject extensionDataObject_value;
etc.
References: https://msdn.microsoft.com/en-us/library/system.runtime.serialization.extensiondataobject (v=vs.110).aspx