我有一個類有兩個屬性(它們是從xsd使用xsd.exe
生成的)並填充它們並嘗試使用下面的代碼將它們序列化爲xml。使用XMLSerializer序列化類不顯示字段C#
我能得到XML在它的元素,但沒有其字段/我已分配
OrganizationDetail objOrgDet = new OrganizationDetail();
objOrg.IsDataLimitedSet =true;
Organization objOrg = new Organization();
objOrg.Orgainzation_Detail = objOrgDet;
XmlSerializer serailizer = new XmlSerializer(typeof(Organization));
StringWriter strwritter = new StringWriter();
serailizer.Serialize(strwritter, objOrg);
string xml = strwritter.ToString();
而導致的XML是
<?xml version="1.0" encoding="utf-16"?>
<Organization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Organization_DETAIL xmlns="http://www.mismo.org/residential/2009/schemas" />
</Organization>
這沒有一個元素我已經設置了字段。
你必須爲你的財產'提供一個值DataLimited' 。我希望'IsDataLimitedSet'是用'XmlIgnore'裝飾的,以防止它出現。 – rene
@rene yep我剛剛發現,但爲什麼這個System.Xml.Serialization.XmlIgnoreAttribute()註解被添加了任何線索? – sudhir
是的,對於具有xsi:nil =「true」或具有minoccurs = 0且映射到類中的非null類型的元素,會添加IIRC。在反序列化期間,根據元素是否存在於有效負載中,不可爲空類型將具有其默認值,無論Is [NameofProperty]集合是true還是false。 – rene