Die Verwendung mehrerer namespaces beim Deserialisieren mit .NET XmlSerializer

Ich versuche zu Deserialisieren von XML mit zwei namespaces, wie diese

<records xmlns="http://www.foo.com/xml/records/1.1">
    <record xmlns="http://www.foo.com/xml/record/1.1">

und manchmal eine ältere version

<records xmlns="http://www.foo.com/xml/records/1.1">
    <record xmlns="http://www.foo.com/xml/record/1.0">

Meine Aufzeichnungen.cs Klasse hat

[XmlRoot(ElementName = "records", Namespace = "http://www.foo.com/xml/records/1.1")]
public class Records
{
    [System.Xml.Serialization.XmlElementAttribute("record")]
    public List<Record> Records { get; set; }
}

Möchte ich die Datensätze auflisten zu können, enthalten entweder eine version 1.0 oder version 1.1 Datensatz

///<remarks/>
[XmlRoot(IsNullable = false, ElementName = "record", Namespace = "http://www.foo.com/xml/record/1.0")]
public partial class Record
{


    ///<remarks/>

    public Record()
    {

    }
}

///<remarks/>
[XmlRoot(IsNullable = false, ElementName = "record", Namespace = "http://www.foo.com/xml/record/1.1")]
public partial class Record11 : Record
{
    ///<remarks/>
    public Record11()
    {
    }
}

also bin ich davon ausgegangen, das erstellen von Unterklassen der Datensatz arbeiten.

Bekomme ich eine Reflexion Ausnahme beim Deserialisieren und die Ausnahme, Punkte mich auf die XmlChoiceIdentifier Attribut. Aber, dass scheint im Zusammenhang mit enums.

Weiß wer, wie zu tun, was ich tun will (Unterstützung Deserialisieren von mehreren Versionen des gleichen schema?)

Dank.

InformationsquelleAutor jimbojones | 2009-09-16
Schreibe einen Kommentar