Избягвайте попълването на разширени свойства в 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