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