Интерфейс System.Runtime.Serialization.IExtensibleDataObject
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Интерфейс IExtensibleDataObject предоставляет одно свойство, задающее или возвращающее структуру, используемую для хранения данных, внешних по отношению к контракту данных. Дополнительные данные хранятся в экземпляре класса ExtensionDataObject; доступ к которым осуществляется через свойство ExtensionData. В операции обмена "туда и обратно", при которой данные получаются, обрабатываются и отправляются назад, дополнительные данные отправляются исходному отправителю без изменений. Полезно хранить данные, полученные из будущих версий контракта. Если не реализовать интерфейс, любые дополнительные данные не учитываются и удаляются во время операции обмена "туда и обратно".
Чтобы использовать возможность управления версиями
Реализуйте интерфейс IExtensibleDataObject в классе.
Добавьте свойство ExtensionData в тип.
Добавьте закрытый элемент типа ExtensionDataObject в класс.
Реализуйте методы "get" и "set" для свойства с помощью нового закрытого элемента.
Примените атрибут DataContractAttribute к классу. При необходимости задайте нужные значения свойствам Name и Namespace.
Дополнительные сведения о версиях типов см. в разделе "Управление версиями контракта данных". Сведения о создании контрактов данных, совместимых с пересылкой, см. в разделе "Контракты данных с совместимостью пересылки". Дополнительные сведения о контрактах данных см. в разделе "Использование контрактов данных".