【发布时间】:2020-03-17 12:01:26
【问题描述】:
我在数据表中有 15k 条记录,我无法将数据表转换为 xml,在 asp.net c# 中出现内存不足异常。
XmlDocument xmlDoc = new XmlDocument();
using (MemoryStream memoryStream = new MemoryStream()) {
using (TextWriter streamWriter = new StreamWriter(memoryStream)) {
XmlSerializer xmlSerializer = new XmlSerializer(typeof(DataTable));
xmlSerializer.Serialize(streamWriter, dt);
if (memoryStream.Position > 0) {
memoryStream.Position = 0;
}
xmlDoc.Load(memoryStream);
}
}
【问题讨论】:
-
请提供您的问题的示例代码。
-
XmlDocument xmlDoc = new XmlDocument();使用 (MemoryStream memoryStream = new MemoryStream()) { using (TextWriter streamWriter = new StreamWriter(memoryStream)) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(DataTable)); xmlSerializer.Serialize(streamWriter, dt); if (memoryStream.Position > 0) { memoryStream.Position = 0; } xmlDoc.Load(memoryStream); } }
-
我缺少什么代码,它在 xmlSerializer.Serialize(streamWriter, dt);行。
-
有多少条记录被序列化?看起来您正试图将大量数据序列化到 MemoryStream 中,结果内存不足。