我有一种方法,接收一个流写入关于使用BinaryWriter.但是,当我处理这BinaryWriter它还关闭流。我可以留下它未释放所以我可以离开我的流打开吗?

有帮助吗?

解决方案

只要不调用Dispose,使用冲洗代替,它的安全。

其他提示

作为.NET 4.5,所述的BinaryWriter类有一个新的构造,需要一个布尔参数,以指示是否离开流打开或没有。

价: http://msdn.microsoft.com/en-us/library/gg712841.aspx

public BinaryWriter(
    Stream output,
    Encoding encoding,
    bool leaveOpen
)

BinaryWriter的情况下,即不是直接选项(尽管某些流包装做可用于控制这一点,例如GZipStream等)。

乔恩在NonClosingStreamWrapper MiscUtil 这应该工作:你换你流非闭合的包装,给包装上,以BinaryWriter。这基本上通过除了Close()Dispose()一切。

受保护的BinaryWriter.Dispose(bool)的方法是虚拟的,它所做的就是关闭流(你可以检查它是真实的 反射器).-这种方法称为通过Dispose()方法。

你可以简单地继承一类从BinaryWriter和复盖Dispose(bool)的方法来做什么,或者其他什么东西产品总数.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top