我有一个定义为:
[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" />
如果集合中没有项目,是否有使用属性的方法使删除元素不被发出?
Greg - 太棒了,谢谢,我甚至没有阅读IsNullable文档,只是假设它是不需要的信号。
Rob Cooper - 我试图避免使用ISerializable,但Greg的建议有效。我确实遇到了你在(1)中概述的问题,如果集合长度为零,我通过返回null破坏了一堆代码。为了解决这个问题,我创建了一个EventsBuilder类(我正在序列化的类称为Events),它管理Events类的所有生命周期/创建,并为序列化提供Events类。