StreamReader и StreamWriter в одном потоке?

Как управлять закрытием StreamReader и StreamWriter, которые используют один и тот же базовый поток?

var stream = /*...*/;
var reader = new StreamReader(stream);
var writer = new StreamWRiter(stream);

Я знаю, что могу просто игнорировать закрытие читателя/писателя и просто закрыть базовый поток. Однако это кажется немного взломанным, поскольку оно основано на предположении , что читателю/писателю нечего распоряжаться (что может быть и не так в будущем).

Я знаю, что это было решено в .NET 4.5 с дополнительным аргументом конструктора, но до тех пор, пока .NET 4.5 не будет выпущен, как я могу его правильно решить?

Ответ 1

Сначала убедитесь, что вы Flush() писатель.

И затем просто уберите или закройте 2 декоратора и поток (вложенные операции в порядке).