.net - WCF禁用反序列化顺序敏感性

标签 .net wcf serialization

在非.NET客户端和.NET WCF服务之间传递序列化对象时,我经常遇到问题。

WCF反序列化对象时,它严格取决于属性的顺序。

也就是说,如果我将类定义为:

public class Foo 
{ 
  public int ID { get; set; } 
  public int Bar { get; set; } 
} 

然后WCF将对象序列化为:
<Foo>
  <Bar>123</Bar>
  <ID>456</ID>
</Foo>

注意:这些属性按字母顺序进行序列化。

如果您尝试反序列化BarID位置互换的对象,则WCF将错误定位的元素视为null。

虽然我知道我可以使用DataMember属性并强制执行特定的排序,但我想减少调试字段为“神秘” null的问题的次数。

因此,我的问题是:在反序列化对象时,您能否告诉WCF反序列化器忽略字段的顺序。

最佳答案

这里有一个旧线程:

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/a891928b-d27a-4ef2-83b3-ee407c6b9187

看起来唯一的选择是交换序列化程序,但随后变得更加烦人。

编辑:,您可以编写自己的序列化器以对元素进行重新排序,然后将其传递给DataContractSerializer

关于.net - WCF禁用反序列化顺序敏感性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1727682/

相关文章:

c# - 不是可以从通用列表分配通用 IList 吗?

wcf - 如何在不使用任何证书的情况下在 wcf 中使用 wsHttpBinding

ASP.NET MVC Controller.Json 日期时间序列化 vs NewtonSoft Json 日期时间序列化

json - 如何在没有格式化的情况下序列化 JObject?

c# - 桌面通知,又名内部警报系统

c# - GDI+ 文本有黑边

java - Java 加密与 And .NET 的十六进制生成问题

wcf - 可以使用 WCF 数据服务返回文件吗?

WCF回调死锁

r - R-Librarys 中 MD5 哈希的差异 - 序列化对象的 MD5