私は次のように定義されたプロパティを持っています:
[XmlArray("delete", IsNullable = true)]
[XmlArrayItem("contact", typeof(ContactEvent)),
XmlArrayItem("sms", typeof(SmsEvent))]
public List<Event> Delete { get; set; }
List<>Deleteにアイテムがない場合
<delete />
放出されます。List<>Deleteがnullに設定されている場合
<delete xsi:nil="true" />
放出されます。コレクションにアイテムがない場合に、属性を使用して削除要素が発行されないようにする方法はありますか?
グレッグ-完全に感謝します。IsNullableのドキュメントを読んでいませんでした。
Rob Cooper -ISerializableを避けようとしていましたが、Gregsの提案は機能します。(1)で概説した問題に遭遇しました。コレクションの長さがゼロの場合、nullを返すだけで、大量のコードを壊しました。これを回避するために、EventsBuilderクラス(シリアル化するクラスはEventsと呼ばれます)を作成しました。このクラスは、Eventsクラスをシリアル化のために吐き出すEventsクラスの基になるオブジェクトのすべてのライフタイム/作成を管理します。