Я пытаюсь высмеять некоторые файловые операции. В «реальном» объекте у меня есть:Избегайте утилизации базового потока
StreamWriter createFile(string name)
{
return new StreamWriter(Path.Combine(_outFolder, name), false, Encoding.UTF8));
}
В фиктивном объекте я как иметь:
StreamWriter createFile(string name)
{
var ms = new MemoryStream();
_files.Add(Path.Combine(_outFolder, name), ms);
return new StreamWriter(ms, Encoding.UTF8));
}
где _FILES представляет собой словарь для хранения созданных файлов для последующей проверки.
Однако, когда потребитель закрывает StreamWriter, он также распоряжается MeamoryStream ... :-(
Любые мысли о том, как проводить это?
Мне это нравится! Но Flush() не нужен - поток «выше» нуждается в очистке, который уже был сделан на этом этапе. –
@danbystrom, рад помочь. Вы правы, StreamWriter будет заподлицо до того, как он будет удален. Но Иск может быть полезным. –