如何从流阅读器或流编写器中分离流?

时间:2010-10-19 23:55:20

标签: c# .net io

我有一个接受流作为输入的类(在构造函数中)。它通过各种方法表示来自此流的内容。

但是,我不希望我的对象负责关闭流 - 这应该是调用者的责任。因此,我需要在我的类中关闭我的StreamReader,但是我无法关闭底层流。

这可能吗?

2 个答案:

答案 0 :(得分:4)

关闭流读取器将关闭基础流。没有办法解决这个问题。但是,您需要关闭流读取器的原因是基础流也已关闭。其余部分都是托管代码。这意味着你可以放弃你的streamreader,一切都应该没问题 - 假设你的调用者记得按他们的意愿关闭他们的流。

答案 1 :(得分:3)

StreamReader旨在获取对基础流的完全和唯一所有权。

特别是,StreamReader将在流中任意读取以填充内部缓冲区。 (这一点我一次)

如果您需要共享流,则可能根本不应使用StreamReader