protected virtual void DisposeInternal() { IsDisposed = true; Disposed.OnNext(this); (Disposed as IDisposable)?.Dispose(); }