Deserialisieren von Listen mit gleichem ElementName
-
Hallo zusammen,
ich habe ein Problem beim Deserialisieren folgendes XML Ausschnittes:
<fork> <process> <operation id="00000001-0001-0001-0000-000000000001" refWebserviceMethod="00000001-0001-0001-0000-000000000000"/> </process> <process> <operation id="00000001-0001-0001-0000-000000000002" refWebserviceMethod="00000001-0001-0001-0000-000000000000"/> </process> </fork>
mit folgender Methode:
private processForkType deserialize(string xml) { StringReader xmlWriter = new StringReader(xml); XmlSerializer xmlSerializer = new XmlSerializer(typeOf(processForkType)); return xmlSerializer.Deserialize(xmlWriter); }
Hier die Klasse für den Deserializer:
public partial class processForkType : object, System.ComponentModel.INotifyPropertyChanged { private object[] processField; private object[] process1Field; /// <remarks/> [System.Xml.Serialization.XmlArrayAttribute(Order=0)] [System.Xml.Serialization.XmlArrayItemAttribute("fork", typeof(processForkType), IsNullable=false)] [System.Xml.Serialization.XmlArrayItemAttribute("operation", typeof(processTypeOperation), IsNullable=false)] public object[] process { get { return this.processField; } set { this.processField = value; this.RaisePropertyChanged("process"); } } /// <remarks/> [System.Xml.Serialization.XmlArrayAttribute("process", Order=1)] [System.Xml.Serialization.XmlArrayItemAttribute("fork", typeof(processForkType), IsNullable=false)] [System.Xml.Serialization.XmlArrayItemAttribute("operation", typeof(processTypeOperation), IsNullable=false)] public object[] process1 { get { return this.process1Field; } set { this.process1Field = value; this.RaisePropertyChanged("process1"); } } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if ((propertyChanged != null)) { propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } }
Das Resultat ist, dass beide "operation"-Elemente in das process Field deserialisiert werden. das process1 Field ist leer.
Die processForkType Klasse wurde mit dem Visual Studio xsd-Tool erzeugt.
Hat jemand eine Idee was ich da machen kann.
Mfg
roskas