从 C# 对象生成 XML 时出现问题
本文关键字:问题 XML 对象 | 更新日期: 2023-09-27 18:34:42
我正在尝试从对象生成XML文件。我在生成 XML 文件之前放置了一个断点,以便可以检查值。对象及其值看起来很好。但是,在生成 XML 文件后,它缺少一个关键组件,即代码。
这就是我期望看到的。
<eDocument Code="UN" Cat="ST">
<id myId="5"/>
</eDocument>
这是生成的实际 xml 文件。
<eDocument Cat="EST">
<id myId="5"/>
</eDocument>
这是要序列化以生成 xml 文件的对象。
sDoc eDocument = new sDoc();
eDocument.Code = "UN";
eDocument.Cat = "ST";
eDocument.myId = new ID[1];
eDocument.myId[0].id= 5;
这就是我保存文件的方式
string fileName= "student.xml";
XmlSerializer serializeObject = new XmlSerializer(eDocument.GetType());
TextWriter streamWritter = new StreamWriter(Server.MapPath(@"~/student/" + fileName));
serializeObject.Serialize(streamWritter, eDocument); // I check the eDocument Object, and it has all the correct inforamtion
streamWritter.Close();
我在这里做错了什么吗?
您需要检查 sDoc 类中的 "Code" 属性。
属性应该是公共读/写的,以便 XML 可序列化。默认情况下,如果没有属性应用于公共属性,则会将其序列化为 XML 元素。在您的情况下,它根本没有序列化,这意味着有问题。
第一个检查:属性在读取(获取(和写入(设置(中是否公开?
第二次检查:字段不是标有 [XmlIgnoreAttribute] 吗?
最后:用 [XmlAttribute] 标记 Cat 属性会将其作为属性进行 xml 序列化。