스트림 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를 호출하여 수행되고 있다고 생각하지 않습니다.
이 처분에 대해 갈등이 적은 다른 방법이 있습니까? 이해하는 데 다소 시간이 걸립니다.