gpt4 book ai didi

C# 扩展 SoapExtension -

转载 作者:太空狗 更新时间:2023-10-29 17:55:35 25 4
gpt4 key购买 nike

背景:我正在尝试编写一个简单的 SoapExtension 类来记录来自 asmx Web 服务的入站/出站 Soap 消息。正在关注this article on msdn ,我已经能够使事情正常进行。但是,我真的很想了解它为什么/如何工作,而不仅仅是复制和粘贴代码。

问题:我很难具体掌握的是示例中 IO 流的处理。我在网上阅读的所有其他文章都以相同的方式处理流...首先获取对原始流的引用,在内存中创建“工作”流,然后根据需要交换内容。

第一个问题是,在这种情况下,“流链接”是什么意思?我对流的理解是写入任何流都会自动写入管道中的“内部”流。如果是这样,为什么需要手动将内容从一个流复制到另一个流?

第二个问题是,在示例 Copy 方法中,他们每次都创建一个 StreamReader 和 StreamWriter,而不处理它们 - 这不会给 GC 带来额外的压力吗?在高流量 Web 服务上似乎不是您想要的东西......我尝试将两者都包装在 using 语句中,但处理读取器/写入器也会关闭流,从而导致更严重的错误。 .NET 4 有新的 Stream.CopyTo(Stream) 方法,但对于 .NET 3.5 来说什么是更好的方法?

最佳答案

好吧,通过链接流,您基本上可以让不同的流以链接的顺序执行不同的操作。例如,您可以有一个压缩数据的流,然后是另一个加密数据的流(如果我们朝另一个方向移动,则相反)。

至于 ChainStream 本身,嗯……关于这个有很多话要说。我真的很推荐这篇文章叫做 Inside of Chainstream ,非常深入,也涵盖了您的大部分问题。

关于C# 扩展 SoapExtension -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5434975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com