特别是我正在使用Ionic.Zlib.ZlibStream在System.Net.Sockets.NetworkStream上进行Zlib压缩.
问题是,ZlibStream是单向流;您可以Read()或Write(),但不能两者都选.您需要两个单独的流,一个用于发送,一个用于接收(一个压缩,另一个解压缩).在您需要将其传递给需要单个双向流的函数(Read()和Write()功能)之前,它可以正常工作.例如,新的System.Net.Security.SslStream(Stream base).
我意识到我可以编写一个Stream类,该类接受一个写入流和一个读取流,并在重写中调用正确的流.但是我希望它已经存在于框架中的某个地方,或者已经有一个实现.
解决方法:
我很确定没有班级会为您做这件事.但是,您需要编写的包装器类很简单,根本不需要花费很长时间.
您可能会从Stream继承,但是如果您分析自己的需求和其他可用的流类型,则可能会发现从更特定的类进行继承将为您提供帮助.
编辑:由于卢卡斯B的评论.
请记住,Stream对象的正常使用要求它们实际上是从Stream继承的.否则,您不能将其作为参数传递给需要流的大量函数.