完全兼容替换System.IO.Stream作为扩展

时间:2015-01-12 18:40:24

标签: c# service io stream

我需要使用包装实际流的服务进行文件传输,并决定将其作为完全兼容的System.IO.Stream替换来实现,从而覆盖所有方法和属性。我打算将它作为常规流使用中间的服务来执行 IO 。是否有基于IO.Stream的生命周期文档?我没找到它,也许我使用了错误的关键字。

1 个答案:

答案 0 :(得分:2)

这是MSDN上的基础知识:

  

对实施者的说明

     

实现Stream的派生类时,必须提供Read和Write方法的实现。异步方法ReadAsync,WriteAsync和CopyToAsync在其实现中使用同步方法Read和Write。因此,您的Read和Write实现将与异步方法一起正常工作。

     

ReadByte和WriteByte的默认实现创建一个新的单元素字节数组,然后调用Read和Write的实现。当您从Stream派生时,我们建议您覆盖这些方法以访问内部缓冲区(如果有),以获得更好的性能。您还必须提供CanRead,CanSeek,CanWrite,Flush,Length,Position,Seek和SetLength的实现。

     

不要覆盖Close方法,而是将所有Stream清理逻辑放在Dispose方法中。