XML将大型对象集合序列化为xml

时间:2014-04-25 13:00:12

标签: c# xml-serialization out-of-memory

序列化大量对象的最佳方法是什么? 我需要将数百万个集合从数据库序列化为xml。 我总是OutOfMemoryException

你能帮帮我吗?

1 个答案:

答案 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
}

For XmlTextWriter reference check MSDN