流媒体编程

发布于 2024-10-11 16:30:54 字数 345 浏览 3 评论 0原文

我需要更多地了解流媒体技术。 我正在使用 biztalk,想要开发一些自定义管道组件。 对于性能因素,一切都必须采用基于流的方式。 我收到一条流式消息,但我想在文本中进行一些替换, 我现在要做的是:

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

//do replacements

//send stream away
StreamWriter...

如您所见,当我执行 r.readToEnd() 时,我中断了流。 如何编辑流中的消息?

谢谢

I need to learn more about streaming techniques.
I am using biztalk and want to develop some custom pipelinecomponents.
For performance factors everything has to be in a stream based fashion.
I receive a streamed message, but I want to do some replacements in the text,
what I do now is:

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

//do replacements

//send stream away
StreamWriter...

As you see I break the stream when I execute r.readToEnd().
How can I edit the message in stream?

thx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诗酒趁年少 2024-10-18 16:30:54

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

使用 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);
    }
}

You cannot. You can read parts of the message from the stream, replace what you want in each part and finally write processed part to another stream.

Using ReadToEnd is opposite to streaming concept. What I can suggest is that you should use:

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文