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> 

等等……

我知道数据契约序列化器的默认行为,但我能让它完全忽略顺序吗?我需要一个不同的/自定义序列化器吗?

我似乎到处都找不到一个明确的答案。

欢呼,比利

WCF -发送请求的能力,其中字段可以按任何顺序排列

如果您使用DataContractSerializer您的xml必须在一个定义的顺序。通过默认的按字母顺序排列。或者通过您定义的顺序来装饰您定义的成员。

如果你试图反序列化一些xml,而它的顺序是错误的,它只会反序列化在正确的位置上的值。

如果您使用XMLSerializer代替,这并不依赖于xml的顺序,如果它找到正确的节点,它将反序列化,这是您似乎想要的行为。

看一下这个关于XmlSerializer的示例教程。

如果你正在发送XML,那么你应该能够使用XML序列化/反序列化来为你执行工作,并创建一个Request类对象。