Как обсуждалось ранее, когда бинарный читатель или бинарник закрываются, его базовый поток также закрывается (AARGH). Рассмотрим эту ситуацию: обычная r передается памятью, скажем, m ; Я хотел бы написать кое -что в m , а затем передать его в другую процедуру для получения дополнительной обработки (не обязательно писать). Для удобства я хотел бы обернуть m в бинарную авторитет, чтобы сделать мое письмо. После написания я закончил с бинарным автором, но не с m .
void R(MemoryStream M)
{
using (B = new BinaryWriter(M))
{
// write some stuff using B
}
S(M); // now pass M to another routine for further processing
}
Но, я не могу избавиться от бинарного элемента без закрытия m .
Q: есть ли способ сделать что -либо из следующего? /> [*] Повторно откройте поток после того, как он был закрыт
Обновление 11 сентября 2025
.net 4.5 (2012) добавил параметр LeaveOpen для решения этой проблемы. Теперь мы можем сделать < /p>
using (var B = new BinaryWriter(m, Encoding.UTF8, leaveOpen: true))
{
// write some stuff using B
}
Подробнее здесь: https://stackoverflow.com/questions/163 ... eam-in-net