序列化大量对象的最佳方法是什么?
我需要将数百万个集合从数据库序列化为xml。
我总是OutOfMemoryException
。
你能帮帮我吗?
答案 0 :(得分:0)
您需要逐个在Read循环中执行此操作。从DB中读取一个,并使用XmlTextWriter将其中一个插入XML文件。
下面的内容适用于您的情况。
using (var xml = new XmlTextWriter ("filename", Encoding.UTF8))
{
xml.WriteStartElement ("container_name");
var cmd = new SqlCommand ("your query", dbConnection);
using (var reader = cmd.ExecuteReader ())
{
while (reader.Read ())
{
//
// Read from DB write to xml
//
}
}
xml.WriteEndElement (); // Close your container
}