public override void Dispose() { var innerHandlers = type2SubHandler.EjectAllValues(); foreach (var handler in innerHandlers) { var disposable = handler as IDisposable; if (disposable != null) { disposable.Dispose(); } } }