このスニペットはかなり自明である必要があります:
XDocument xd = ....
using (FileStream fs = new FileStream("test.txt", FileMode.Open, FileAccess.ReadWrite))
{
using (TextWriter tw = new StreamWriter(fs))
{
xd.Save(tw);
}
fs.Flush();
fs.SetLength(fs.Position);
}
XDocument
を使用してストリームにシリアル化TextWriter
し、終了後にストリームを切り捨てたいと思います。残念ながら、Save()
操作によってストリームが閉じられたように見えるため、Flush()
呼び出しで例外が生成されます。
現実の世界では、私は実際にファイルにシリアル化するのではなく、自分の制御の及ばない他の種類のストリームにシリアル化するので、最初にファイルを削除するだけの単純なものではありません。