跳过行的 XML 序列化程序

本文关键字:序列化 程序 XML | 更新日期: 2023-09-27 17:55:27

我有一个应用程序,可以从数据库中读取记录并将其导出到xml文件。 有一个 xsd 可以绘制 xml 文件的架构。 我正在使用 xsd 代理类将数据序列化为 xml 文件。

这就是我将数据序列化为 xml 的方式:

XmlSerializer serializer = new XmlSerializer(_report.GetType());
StringBuilder xmlString = new StringBuilder();
StringWriter writer = new StringWriter(xmlString);
serializer.Serialize(writer, _report);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString.ToString());
doc.Save(_outputFile.FullName);

我遇到的问题是输出文件中缺少行。 我进行了调试,发现数据正在从数据库添加到代理对象的集合中,并通过"_report"对象传递给序列化程序。

因此,为了隔离数据或应用程序的问题,我将一些缺失的记录手动编码为csv文件,并将数据导入我的应用程序中。 这些记录现在出现在 xml 文件中。 所以,现在我知道这是一个数据问题。 该应用程序使用 informix 数据库作为后端。

我不明白的是,为什么 informix 数据库中同一表中的某些行存在而其他行不存在? 我花了将近 2-3 天的时间在互联网上四处寻找,但没有任何成功。 所以,我想是时候把它提高一个档次了。

跳过行的 XML 序列化程序

2天前我遇到了类似的问题。

尝试添加

 writer.Flush();

在您致电之前

 xmlString.ToString());

这就是解决我问题的解决方案。