Избегайте заполнения расширенных свойств в контрактах данных WCF.

Как избежать заполнения коллекции ExtendedProperties в моем контракте данных?

Моя служба WCF создает контракт данных из XML и заполняет ExtendedProperties свойствами, которых нет в контракте. Потом их возвращают, а этого хотелось бы избежать.

Очистка коллекций ExtendedProperties — это простой подход, но я искал более элегантный способ сделать это.

Любая помощь?


person user2214951    schedule 27.03.2013    source источник


Ответы (2)


Использование одного из других конструкторов DataContractSerializer, которые принимают логический параметр с именем ignoreExtensionDataObject, является лучшим способом, который я нашел для достижения этой цели.

public DataContractSerializer(Type type, 
    IEnumerable<Type> knownTypes, 
    int maxItemsInObjectGraph, 
    bool ignoreExtensionDataObject, 
    bool preserveObjectReferences, 
    IDataContractSurrogate dataContractSurrogate);
person user2214951    schedule 01.04.2013

Из MSDN совместимые вперед контракты данных :

Функцию кругового обхода можно отключить либо путем установки для ignoreExtensionDataObject значения true в конструкторе DataContractSerializer, либо путем установки атрибута IgnoreExtensionDataObject значение true в атрибуте ServiceBehaviorAttribute. Когда эта функция отключена, десериализатор не будет заполнять свойство ExtensionData, а сериализатор не будет выдавать содержимое свойства.

person marcob    schedule 29.01.2014