如何避免在我的数据合同中填充 ExtendedProperties 集合?
我的 WCF 服务正在从 XML 构建数据合同,并ExtendedProperties使用合同中没有的属性填充数据合同。然后他们被退回,我想避免这种情况。
清除ExtendedProperties集合是一种直接的方法,但我一直在寻找一种更优雅的方法来做到这一点。
有什么帮助吗?
如何避免在我的数据合同中填充 ExtendedProperties 集合?
我的 WCF 服务正在从 XML 构建数据合同,并ExtendedProperties使用合同中没有的属性填充数据合同。然后他们被退回,我想避免这种情况。
清除ExtendedProperties集合是一种直接的方法,但我一直在寻找一种更优雅的方法来做到这一点。
有什么帮助吗?
使用接受名为 ignoreExtensionDataObject 的布尔参数的其他 DataContractSerializer 构造函数之一是我发现完成此任务的最佳方法。
public DataContractSerializer(Type type,
IEnumerable<Type> knownTypes,
int maxItemsInObjectGraph,
bool ignoreExtensionDataObject,
bool preserveObjectReferences,
IDataContractSurrogate dataContractSurrogate);
来自 MSDN前向兼容数据合同:
可以通过在 DataContractSerializer 构造函数中将 ignoreExtensionDataObject 设置为 true 或通过在 ServiceBehaviorAttribute 上将IgnoreExtensionDataObject属性设置为 true 来关闭往返功能。当此功能关闭时,反序列化程序将不会填充 ExtensionData 属性,并且序列化程序不会发出该属性的内容。