0
我從流得到以下類:處理含衍生流流
public class EncryptedStream : Stream
{
private readonly SymmetricAlgorithm _engine;
private readonly CryptoStream _cryptoStream;
private readonly Stream _inputStream;
//Standard overrides of stream
}
我正在尋找一種方法來處理基本流和這個類中的所有流和資源。我已閱讀有關Dispose模式了一下,因爲流已經實現了IDisposable,我的想法是在這個類來處理我會做到以下幾點:
protected override void Dispose(bool disposing)
{
if (disposing)
{
_engine.Dispose();
_cryptoStream.Dispose();
_inputStream.Dispose();
}
}
,因爲基本流的處置時,這應被調用基礎流IDisposable調用Close(),它調用Dispose(true)。
這似乎工作,這種方法有沒有什麼不足?還有,我是否需要在If語句之後調用base.Dispose(disposing)?我不這麼認爲,因爲基本上已經通過在基礎流上調用Dispose來正確完成了嗎?
有沒有其他更簡單的方法去處理這個處置,因爲這花了我一段時間才明白。