null
SOAP 呼び出し中に値をシリアル化する場合、WCF DataContractSerializer はあまり効率的ではないことに注意してください。監査目的で、ディスクに送信された正確なメッセージも記録するため、ストレージが無駄になります。複数の nil 要素を持つ典型的なメッセージは、次のように送信されます。
<MyMessage xmlns="myXmlns">
<field0>1234567</field0>
<field1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
<field2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
<field3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
// etc
</MyMessage>
次のような SOAP 本体を生成すると、帯域幅とディスクの考慮事項が計り知れないほど改善されます。
<MyMessage xmlns="myXmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<field0>1234567</field0>
<field1 xsi:nil="true" />
<field2 xsi:nil="true" />
<field3 xsi:nil="true" />
//etc
</MyMessage>
私の質問は、WCF クライアントを変更してルート要素の XSI 名前空間を統合し、各 nil 要素で繰り返されないようにするにはどうすればよいですか?