XML-Serialisierung und leere Sammlungen

Ich habe eine Eigenschaft, definiert als:

[XmlArray("delete", IsNullable = true)]
[XmlArrayItem("contact", typeof(ContactEvent)),
 XmlArrayItem("sms", typeof(SmsEvent))]
public List<Event> Delete { get; set; }

Wenn die Liste<> Löschen hat keine Artikel

<delete />

emittiert wird. Wenn die Liste<> Löschen auf null gesetzt ist,

<delete xsi:nil="true" />

emittiert wird. Gibt es eine Möglichkeit Attribute verwenden, um die löschen element wurde nicht abgegeben werden, wenn in der Auflistung keine Elemente?

Greg - Perfekt danke, wusste ich nicht einmal Lesen Sie die IsNullable-Dokumentation nur vermutet, es war melde es als nicht erforderlich.

Rob Cooper - Ich habe versucht zu vermeiden, ISerializable, aber Gregs Vorschlag funktioniert. Ich habe laufen in das problem, das Sie beschrieben in (1), brach ich eine Reihe von code, indem Sie einfach null zurückgeben, wenn die Sammlung wurde die Länge null. Um dieses erstellte ich eine EventsBuilder Klasse (die Klasse die ich serialisieren aufgerufen, Ereignisse), das es geschafft allen das Leben/die Schöpfung der zugrunde liegenden Objekte, die Events Klasse, spuckt unsere Veranstaltungen Klassen für die Serialisierung.

Ich schrieb einen Artikel, in dem Ausführlicher auf diese in codepoets.co.nz/2009/03/03/... versuchen @theahuramazda Anregung und Aktualisierung.

InformationsquelleAutor Nic Strong | 2008-09-16

Schreibe einen Kommentar