У меня довольно большой XDocument, который я пытаюсь сохранить в ZipArchive. Приведенный ниже код работает для меня, но из-за ограничения на объем памяти, доступной для меня, он завершается ошибкой OutOfMemoryException при выполнении вызова catalogXDocument.ToString ().
Есть ли способ сохранить XDocument в ZipArchive без необходимости хранить все в памяти?.
Код:
public Stream Zip(XDocument catalogXDocument)
{
MemoryStream memoryStream = new MemoryStream();
using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
var catalogFile = archive.CreateEntry("Catalog.xml");
using (var entryStream = catalogFile.Open())
using (var streamWriter = new StreamWriter(entryStream))
{
streamWriter.Write(catalogXDocument.ToString());
}
}
memoryStream.Seek(0, SeekOrigin.Begin);
return memoryStream;
}