【发布时间】:2014-03-04 14:13:01
【问题描述】:
最近我向 DataContract 添加了一个新属性,这破坏了我们的 Java 客户端的 API,因为反序列化器无法识别新添加的属性。
解决方案显然是在新属性上设置 order 属性,以便它出现在 SOAP 消息中的最后,然后反序列化器将简单地忽略它。
问题是这个新属性存在于基类中,而WCF总是先序列化基类属性,所以无论order属性如何,派生类属性总是会在后面出现。
我能想到的解决此问题的唯一两种方法是:
- 将属性及其所有逻辑复制到每个派生类
- 编写一个自定义序列化程序,可以“全局”排序
第一个解决方案是最糟糕的,但也是最简单的。第二个难度更大,风险更大,但最好。
我还有其他方法可以处理这种情况吗?是否可以强制默认 WCF 序列化程序以不同方式处理排序?
谢谢!
【问题讨论】:
标签: c# .net wcf api serialization