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

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

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

Чтобы использовать возможность управления версиями

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

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

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

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

  5. Примените атрибут DataContractAttribute к классу. При необходимости задайте нужные значения свойствам Name и Namespace.

Дополнительные сведения о версиях типов см. в разделе "Управление версиями контракта данных". Сведения о создании контрактов данных, совместимых с пересылкой, см. в разделе "Контракты данных с совместимостью пересылки". Дополнительные сведения о контрактах данных см. в разделе "Использование контрактов данных".