避免在WCF数据协定中填充扩展属性

时间:2013-03-27 09:47:14

标签: wcf datacontract extended-properties

如何避免在数据合同中填充ExtendedProperties集合?

我的WCF服务正在从XML构建数据协定,并使用不在合同中的属性填充ExtendedProperties。然后他们被退回,我想避免这样做。

清除ExtendedProperties集合是一种直截了当的方法,但我一直在寻找一种更优雅的方法。

任何帮助?

2 个答案:

答案 0 :(得分:0)

使用其他一个接受名为ignoreExtensionDataObject的布尔参数的DataContractSerializer构造函数是我找到的最好的方法。

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

答案 1 :(得分:0)

来自MSDN Forward-Compatible Data Contracts

可以通过在DataContractSerializer构造函数中将ignoreExtensionDataObject设置为true或者通过在ServiceBehaviorAttribute上将IgnoreExtensionDataObject属性设置为true来关闭往返功能。当此功能关闭时,反序列化器将不会填充ExtensionData属性,并且序列化程序将不会发出属性的内容。