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



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

以下是 MSDN 上的基础知识:

实施者须知

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

ReadByte 和 WriteByte 的默认实现创建一个新的单元素字节数组,然后调用读取和写入的实现。从 Stream 派生时,建议重写这些方法以访问内部缓冲区(如果有),以获得显著提高性能。您还必须提供 CanRead、CanSeek、CanWrite、Flush、Length、Position、Seek 和 SetLength 的实现。

不要重写 Close 方法,而是将所有流清理逻辑放在 Dispose 方法中。

最新更新