【发布时间】:2009-04-06 13:51:41
【问题描述】:
我正在尝试使用XmlSerializer 序列化一个非常大的IEnumerable<MyObject>,而不将所有对象保留在内存中。
IEnumerable<MyObject> 其实很懒..
我正在寻找一种流媒体解决方案:
- 从
IEnumerable<MyObject>中获取一个对象 使用标准序列化将其序列化到底层流(我不想在这里手工制作 XML!) - 丢弃内存中的数据并移动到下一个
我正在尝试使用此代码:
using (var writer = new StreamWriter(filePath))
{
var xmlSerializer = new XmlSerializer(typeof(MyObject));
foreach (var myObject in myObjectsIEnumerable)
{
xmlSerializer.Serialize(writer, myObject);
}
}
但我得到了多个 XML 标头,我无法指定根标记 <MyObjects>,因此我的 XML 无效。
有什么想法吗?
谢谢
【问题讨论】:
标签: c# .net xml serialization streaming