WCF -发送请求的能力,其中字段可以按任何顺序排列
本文关键字:字段 任何 排列 顺序 -发 请求 能力 WCF | 更新日期: 2023-09-27 18:16:57
是否有任何方法可以使WCF服务接受订单不重要的请求,即您可以发送以下内容并使其正确反序列化:
<Request>
<Field1>Val1</Field1>
<Field2>Val2</Field2>
<Field3>Val3</Field3>
</Request>
或
<Request>
<Field3>Val3</Field3>
<Field1>Val1</Field1>
<Field2>Val2</Field2>
</Request>
或
<Request>
<Field2>Val2</Field2>
<Field3>Val3</Field3>
<Field1>Val1</Field1>
</Request>
等等……
我知道数据契约序列化器的默认行为,但我能让它完全忽略顺序吗?我需要一个不同的/自定义序列化器吗?
我似乎到处都找不到一个明确的答案。
欢呼,比利
如果您使用DataContractSerializer
您的xml必须在一个定义的顺序。通过默认的按字母顺序排列。或者通过您定义的顺序来装饰您定义的成员。
如果你试图反序列化一些xml,而它的顺序是错误的,它只会反序列化在正确的位置上的值。
如果您使用XMLSerializer
代替,这并不依赖于xml的顺序,如果它找到正确的节点,它将反序列化,这是您似乎想要的行为。
看一下这个关于XmlSerializer的示例教程。
如果你正在发送XML,那么你应该能够使用XML序列化/反序列化来为你执行工作,并创建一个Request类对象。