【问题标题】:Avoid populating Extended Properties in WCF data contracts避免在 WCF 数据协定中填充扩展属性
【发布时间】:2013-03-27 09:47:14
【问题描述】:

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

我的 WCF 服务正在从 XML 构建数据协定,并使用协定中没有的属性填充 ExtendedProperties。然后它们会被退回,我想避免这种情况。

清除ExtendedProperties 集合是一种简单的方法,但我一直在寻找一种更优雅的方法来做到这一点。

有什么帮助吗?

【问题讨论】:

    标签: wcf datacontract extended-properties


    【解决方案1】:

    使用接受名为 ignoreExtensionDataObject 的布尔参数的其他 DataContractSerializer 构造函数之一是我发现完成此任务的最佳方法。

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

    【讨论】:

      【解决方案2】:

      来自 MSDN Forward-Compatible Data Contracts:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多