ストリームI持っているストリームから派生し、次のクラス:私はベースを配置ストリームと、このクラス内のすべてのストリームやリソースへの道を探していますは
public class EncryptedStream : Stream
{
private readonly SymmetricAlgorithm _engine;
private readonly CryptoStream _cryptoStream;
private readonly Stream _inputStream;
//Standard overrides of stream
}
。私は、私の考えは、私は次のことを行うと、このクラスで処分することになり、処分パターンについて少し読んで、ストリームは既にIDisposableインターを実装しています
protected override void Dispose(bool disposing)
{
if (disposing)
{
_engine.Dispose();
_cryptoStream.Dispose();
_inputStream.Dispose();
}
}
ので、基本ストリームを廃棄するときには、呼び出される必要がありますベースストリームIDisposableは、Dispose(true)を呼び出すClose()を呼び出します。
これは動作するようですが、このアプローチには欠点がありますか?また、if文の後にbase.Dispose(disposing)を呼び出す必要がありますか?私はそれが本質的に既に最初の場所でベースストリームでDisposeを呼び出すことによって行われているので、そうは思わない?
これは私が理解するのに少し時間がかかったので、この処分について行くために他のあまり複雑でない方法がありますか?