Selbst wenn Sie WCF dazu zwingen könnten, würde der Deserialisierer nicht korrekt funktionieren, um die Eingabe zu unterstützen. Beispiele und Erklärung unten.
Eingang 1 (gut):
<MyOperation>
<AField>value A</AField>
<BField>value B</BField>
</MyOperation>
Eingang 2 (schlecht):
<MyOperation>
<BField>value B</BField>
<AField>value A</AField>
</MyOperation>
Wenn also Eingabe 1 korrekt deserialisiert wurde, dann würde Eingabe 2 nicht - BField würde einen Wert haben, der festgelegt wurde, aber die Eigenschaft AField wäre null.
Wenn WCF diese Out-of-Sequence-Eingabe nicht verarbeiten kann, denke ich stark, dass es eine Ausnahme auslösen sollte, aber auf der Grundlage meiner Tests (.NET 3.5 in IIS) tut es nicht so, es überspringt nur einige Elementwerte.
Darüber hinaus ignoriert WCF auch völlig falsche Eingaben, solange sie sich nicht auf die gültigen Elementwerte auswirken, nach denen es sucht. Also diese Eingabe
<MyOperation>
<bogusField>with or without data</bogusField>
<AField>value A</AField>
<bogusField2 />
<BField>value B</BField>
<bogusField3></bogusField3>
</MyOperation>
würde keine Fehler auslösen und würde tatsächlich die Werte in AField und BField deserialisieren.