Поделиться через


Интерфейс System.Runtime.Serialization.IExtensibleDataObject

В этой статье приводятся дополнительные замечания к справочной документации по этому API.

Интерфейс IExtensibleDataObject предоставляет одно свойство, которое устанавливает или возвращает структуру, используемую для хранения данных, внешних для данного контракта. Дополнительные данные хранятся в экземпляре ExtensionDataObject класса и получают доступ через ExtensionData свойство. В операции обратной передачи, где данные принимаются, обрабатываются и отправляются обратно, дополнительные данные отправляются исходному отправителю в неизменном виде. Это полезно для хранения данных, полученных из будущих версий контракта. Если интерфейс не реализован, все дополнительные данные игнорируются и удаляются во время циклической операции.

Использование этой функции управления версиями

  1. IExtensibleDataObject Реализуйте интерфейс в классе.

  2. Добавьте свойство к типу ExtensionData.

  3. Добавьте в класс закрытый член типа ExtensionDataObject .

  4. Реализуйте методы get и set для свойства с помощью нового закрытого элемента.

  5. DataContractAttribute Примените атрибут к классу. Задайте свойства Name и Namespace на соответствующие значения, если это необходимо.

Дополнительные сведения о версиях типов см. в разделе "Управление версиями контракта данных". Сведения о создании контрактов данных, совместимых с будущими версиями, см. в разделе Forward-Compatible контракты данных. Дополнительные сведения о контрактах данных см. в разделе "Использование контрактов данных".