Laden...

Deserialisierung XML-String mit xxxSpecified Field ?

Erstellt von snupi vor 11 Jahren Letzter Beitrag vor 11 Jahren 588 Views
S
snupi Themenstarter:in
357 Beiträge seit 2007
vor 11 Jahren
Deserialisierung XML-String mit xxxSpecified Field ?

Ich deserialisiere einen xml-String auf die Klasse 'Dummy'.

Im xsd ist das Feld 'num' mandatory und das Feld 'str' optional (minOccurs=0)


public class Dummy {
   int numField;
   string strField;
   bool strFieldSpecified;

   public int num {
       get {
           return this.numField;
       }
       set {
           this.numField = value;
       }
   }

   public string str {
       get {
           return this.strField;
       }
       set {
           this.strField = value;
       }
   }

   [System.Xml.Serialization.XmlIgnoreAttribute]
   public bool strSpecified {
       get {
           return this.strFieldSpecified;
       }
       set {
           this.strFieldSpecified = value;
       }
   }
}

Kann man den (De)Serializer veranlassen, den Wert xxxSpecified automatisch zu setzen ?

Ich kann natürlich den Wert beim Setzen der zugehörigen Property selbst setzen, nur müsste ich dann alle optionalen Elemente manuel erweitern:


   public string str {
       get {
           return this.strField;
       }
       set {
           this.strField = value;
           this.strFieldSpecified = true;
       }
   }

Bei WCF Services habe ich bemerkt, dass diese Specified-Felder automatisch gesetzt werden...

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo snupi,

ich bin nun leider auch nicht der Xml(de)serialisierungsexperte, aber XmlSerializer-Konstruktor (Type, XmlAttributeOverrides) in Verbindung mit XmlAttributeOverrides-Klasse sieht mir recht vielversprechend aus.

herbivore

S
snupi Themenstarter:in
357 Beiträge seit 2007
vor 11 Jahren

habe nun bissi getestet und es muss das XmlElement()-Attribut gesetzt sein, dann wird auch xxxSpecified gesetzt