System.Runtime.Serialization.IExtensibleDataObject interface

This article provides supplementary remarks to the reference documentation for this API.

The IExtensibleDataObject interface provides a single property that sets or returns a structure used to store data that is external to a data contract. The extra data is stored in an instance of the ExtensionDataObject class and accessed through the ExtensionData property. In a roundtrip operation where data is received, processed, and sent back, the extra data is sent back to the original sender intact. This is useful to store data received from future versions of the contract. If you do not implement the interface, any extra data is ignored and discarded during a roundtrip operation.

To use this versioning feature

  1. Implement the IExtensibleDataObject interface in a class.

  2. Add the ExtensionData property to your type.

  3. Add a private member of type ExtensionDataObject to the class.

  4. Implement get and set methods for the property using the new private member.

  5. Apply the DataContractAttribute attribute to the class. Set the Name and Namespace properties to appropriate values if necessary.

For more information about versioning of types, see Data Contract Versioning. For information about creating forward-compatible data contracts, see Forward-Compatible Data Contracts. For more information about data contracts, see Using Data Contracts.