如何避免在我的数据合同中填充 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 属性,并且序列化程序不会发出该属性的内容。