C# 流式编程

C# 流式编程,c#,stream,C#,Stream,我需要学习更多关于流媒体技术的知识。 我正在使用biztalk,并希望开发一些自定义pipelinecomponents。 对于性能因素,一切都必须以基于流的方式进行。 我收到一条流式消息,但我想在文本中做一些替换, 我现在做的是: string msg = ""; using(StreamReader r = new StreamReader(stream)){ msg = r.readToEnd(); } //do replacements //send stream away

我需要学习更多关于流媒体技术的知识。 我正在使用biztalk,并希望开发一些自定义pipelinecomponents。 对于性能因素,一切都必须以基于流的方式进行。 我收到一条流式消息,但我想在文本中做一些替换, 我现在做的是:

string msg = "";
using(StreamReader r = new StreamReader(stream)){
     msg = r.readToEnd();
}

//do replacements

//send stream away
StreamWriter...
如您所见,我在执行r.readToEnd()时中断了流。 如何编辑流中的消息


thx

您不能。您可以从流中读取部分消息,替换每个部分中所需的内容,最后将处理后的部分写入另一个流

使用ReadToEnd与流概念相反。我建议您使用:

using (StreamReader r = new StreamReader(stream))
using (StreamWriter w = new StreamWriter(someOutputStream))
{
    string line = null;
    while ((line = r.ReadLine()) != null)
    {
       line = DoReplacements(line);
       w.WriteLine(line);
    }
}

你不能。您可以从流中读取部分消息,替换每个部分中所需的内容,最后将处理后的部分写入另一个流

使用ReadToEnd与流概念相反。我建议您使用:

using (StreamReader r = new StreamReader(stream))
using (StreamWriter w = new StreamWriter(someOutputStream))
{
    string line = null;
    while ((line = r.ReadLine()) != null)
    {
       line = DoReplacements(line);
       w.WriteLine(line);
    }
}