在不关闭 Stream 的情况下离开 StreamReader

San*_*old 2 c# azure streamreader azure-servicebusrelay

我目前正在使用 Azure 中继服务,但在处理流时遇到了问题。我需要以同步方式使用此服务,因为将使用此实现的软件需要它。

我正在向服务打开一个流并使用 从中读取数据StreamReader(),工作正常。但是现在我必须离开StreamReader而不关闭底层流,因为我必须将答案发送回发件人。

问题是,我不能在StreamReader()不关闭基础流的情况下离开,并且不可能重新打开流以发回答案。

任何想法如何解决这个问题?

谢谢你的帮助。

Typ*_*eIA 6

有一个接受参数StreamReader构造函数重载bool leaveOpen。Passingtrue可防止在处理StreamReader时关闭流StreamReader

离开打开

类型:System.Boolean

离开流开放后StreamReader对象是设置; 否则为false

例如,使用您通过更简单的StreamReader构造函数获得的默认 UTF8 编码和 1024 字节缓冲区:

using (var reader = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
{
    // use reader
} // stream will NOT be closed here
Run Code Online (Sandbox Code Playgroud)