C# WCF-能够发送请求,其中字段可以是任意顺序

C# WCF-能够发送请求,其中字段可以是任意顺序,c#,wcf,C#,Wcf,是否有任何方法可以使WCF服务在订单不重要的情况下接受请求,即您是否可以发送以下内容并使其正确反序列化: <Request> <Field1>Val1</Field1> <Field2>Val2</Field2> <Field3>Val3</Field3> </Request> 瓦尔1 瓦尔2 Val3 或 Val3 瓦尔1 瓦尔2 或 瓦尔2 Val3 瓦尔1 等等

是否有任何方法可以使WCF服务在订单不重要的情况下接受请求,即您是否可以发送以下内容并使其正确反序列化:

<Request>
   <Field1>Val1</Field1>
   <Field2>Val2</Field2>
   <Field3>Val3</Field3>
</Request> 

瓦尔1
瓦尔2
Val3


Val3
瓦尔1
瓦尔2


瓦尔2
Val3
瓦尔1
等等

我知道数据契约序列化器的默认行为,但我能让它完全忽略顺序吗?我是否需要其他/自定义序列化服务器

我似乎在任何地方都找不到确切的答案

干杯,
Billy

如果您发送XML,那么您应该能够使用XML序列化/反序列化为您执行工作并创建请求类对象。

如果您发送XML,那么您应该能够使用XML序列化/反序列化为您执行工作并创建请求类对象。

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

如果您试图反序列化某些xml,但其顺序错误,那么它将只反序列化序列化序列化程序中正确位置的值

如果改用
XMLSerializer
,这并不依赖于xml的顺序,如果它找到了您想要的正确节点,它将反序列化


以XmlSerializer为例。

如果使用
DataContractSerializer
则xml必须按照定义的顺序。或者通过默认的字母顺序。或者通过定义的顺序来装饰定义中的成员

如果您试图反序列化某些xml,但其顺序错误,那么它将只反序列化序列化序列化程序中正确位置的值

如果改用
XMLSerializer
,这并不依赖于xml的顺序,如果它找到了您想要的正确节点,它将反序列化

以XmlSerializer为例

<Request>
   <Field3>Val3</Field3>
   <Field1>Val1</Field1>
   <Field2>Val2</Field2>
</Request>
<Request>
   <Field2>Val2</Field2>
   <Field3>Val3</Field3>
   <Field1>Val1</Field1>
</Request>