Dispose()FlushFinalBlock()如果尚未调用,则调用。这也在文档中,但不是集中的,而是分布式的:
CryptoStreams不重载Close()或(无参数) public Dispose(),因此Stream调用类的实现。
Stream#Dispose()(s. Remarks)的文档指出:
此方法通过将任何更改写入后备存储并关闭流以释放资源来处理流。
这与源代码(来自 .NET Framework 4.8)一致。Stream#Dispose()来电Stream#Close()。
CryptoStream#FlushFinalBlock()(s. Remarks)的文档说(正如您已经描述的那样):
调用 Close 方法将调用 FlushFinalBlock。
这再次与源代码(来自 .NET Framework 4.8)一致。Close()调用(除其他外)受保护的(虚拟)重载Dispose(true),该重载在CryptoStream, 见中被覆盖CryptoStream#Dispose(bool disposing),FlushFinalBlock()如果尚未调用(即取决于_finalBlockTransformed),则调用,
这些细节在CryptoStream#Dispose(Boolean)(s. Remarks)中描述:
此方法由公共 Dispose() 方法和 Finalize 方法调用。Dispose() 调用受保护的 Dispose(Boolean) 方法,并将 disposing 参数设置为 true...