我有一个接受流作为输入的类(在构造函数中)。它通过各种方法表示来自此流的内容。如何从流读取器或流写入器分离流?
但是,我不希望我的对象负责关闭流 - 这应该是调用者的责任。因此,我需要在我的类中关闭StreamReader,但无法关闭基础流。
这可能吗?
我有一个接受流作为输入的类(在构造函数中)。它通过各种方法表示来自此流的内容。如何从流读取器或流写入器分离流?
但是,我不希望我的对象负责关闭流 - 这应该是调用者的责任。因此,我需要在我的类中关闭StreamReader,但无法关闭基础流。
这可能吗?
StreamReader
s旨在完全和独有的基础流。
特别是,StreamReader
将在流中任意提前读取以填充内部缓冲区。 (这一点我一次)
如果你需要共享流,你可能根本不应该使用StreamReader
。
@ SLacks:一般来说,我根本不会共享streamreader。我需要的唯一地方是单元测试代表一个挂载点的类。 – 2010-10-30 03:57:11
关闭流式阅读器将关闭底层流。这是没有办法的。但是,只有原因您需要关闭流式读取器,以便基础流也关闭。其余的都是托管代码。这意味着你可以放弃你的流媒体阅读器,一切都应该是好的—假设你的调用者记得他们应该关闭他们的流。
我以为流读写器的终结者关闭了流... – 2010-10-20 00:33:33
@比利:终结者应该只处置_native_资源。 – SLaks 2010-10-20 00:36:59
@SLaks:嗯,我没有写StreamReader类.... – 2010-10-20 01:26:12
为什么你需要关闭StreamReader? – 2010-10-20 00:02:47
@Martinho:因为我的理解,这就是你应该做的。 – 2010-10-30 03:57:32