私は次のことをしようとします:
var mem = new MemoryStream();
var xmlWriter = new XmlTextWriter(mem, System.Text.Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
var xmlSerializer = new XmlSerializer(typeof(Project));
xmlSerializer.Serialize(xmlWriter, this);
xmlWriter.Flush();
mem.Seek(0, SeekOrigin.Begin);
using (var zip = new ZipFile())
{
ZipEntry e = zip.AddEntry("file.xml", mem);
e.Comment = "XML file";
zip.AddFile("file.xml");
zip.Save(filename);
}
mem.Close();
ただし、zip.Save が呼び出されると例外がスローされます。
ここで何が間違っていますか?
基本的な考え方は、クラス Project をメモリストリーム内の XmlFile にシリアル化することです。次に、DotNetZip のメモリストリームを使用してファイルに圧縮します。