Ich weiß, dass das Thema wiederholt wird. Das ist nicht das erste Mal, dass ich an XmlSerializer
arbeite, und ich hatte dieses Problem nicht. aber für diese Zeit habe ich keine Ahnung, was vor sich geht.Angegebenes Muster wird aufgerufen, hat aber keine Wirkung - funktioniert nicht (XmlSerializer)
public string comp_addr01
{
get
{
return this.comp_addr01Field;
}
set
{
this.comp_addr01Field = value;
}
}
[XmlIgnore]
public bool comp_addr01Specified { get { return true; } }
I getestet comp_add01Specified aufgerufen wird, wenn auch nicht in XML-Ausgabe gezeigt.
der einzige Weg, bisher gearbeitet wird, wenn XmlElement(IsNullable = true)
[XmlElement(IsNullable = true)]
public string comp_addr01
{
get
{
return this.comp_addr01Field;
}
set
{
this.comp_addr01Field = value;
}
}
aber jetzt <comp_addr01 xsi:nil="true" />
xsi hinzugefügt: nil = „true“ noch gezeigt ich es gezeigt werden nicht benötigt wird. Ich weiß nicht, was all diese Unordnung passiert
Es ist nicht wirklich klar, was Ihr Problem ist. comp_add01Specified sollte nicht in XML enthalten sein, da Sie XmlIgnore darauf haben. Ist comp_addr01 nicht in xml enthalten? Es wird nicht ohne das IsNullable enthalten sein, wenn es null ist, so funktionieren die Dinge. Es wird eingeschlossen, wenn es nicht null ist. –
@TimRutter, danke für deine Antwort. Der Punkt ist, dass ich will, dass comp_addr01 immer in der Xml-Datei erscheint, unabhängig davon, ob der Wert null ist oder nicht. Daher habe ich comp_addr01Sepcified verwendet, damit XmlSerializer weiß, dass diese Eigenschaft enthalten sein muss. Obwohl comp_addr01Specified aufgerufen wurde, wird comp_addr01 nur angezeigt, wenn es nicht null ist. Nachdem ich das Attribut 'XmlElement (IsNullable = true) 'hinzugefügt hatte, erschien comp_addr01. Wenn nicht falsch, habe ich das gleiche Konzept vor und arbeitete ohne XmlElement-Attribut. Deshalb habe ich die Frage gestellt. Vielleicht habe ich etwas verpasst. –