私は、mvc サイトを介してシリアル化されたいくつかのオブジェクトを取得し、xml、json などを介して物を返すことに取り組んでおり、空の要素を送信しないための最良の方法を探しています。
完璧な世界では、単に EmitDefaultValue:=False を DataContract の DataMembers にアタッチするだけで十分ですが、状況によってはうまくいきません。
String のデフォルトは Nothing ですが、Nothing または String.Empty の場合はシリアル化したくありません。リストとコレクションについても同様です。それらがNothingの場合、またはカウントが0で空の場合、それらをシリアル化したくありません。
あまりきれいではないオプションがいくつかあるようです。
XmlTextWriter
自分自身をバッファリングして空の要素をドロップするカスタム- オブジェクトがシリアル化される前に、Empty を Nothing に、Count-0 を Nothing に設定して、prop を循環します。
- 空の要素を削除する XSLT
- 途中で出力文字列を正規表現する
これらはどれも悪いことのように思えます。そこに他のトリックはありますか?