public void Dispose() { _window?.Close(); _window = null; _lifetimeSupervisor.ShowNotificationRequested -= LifetimeSupervisorOnShowNotificationRequested; _lifetimeSupervisor.CloseNotificationRequested -= LifetimeSupervisorOnCloseNotificationRequested; _positionProvider.UpdatePositionRequested -= PositionProviderOnUpdatePositionRequested; _positionProvider.UpdateEjectDirectionRequested -= PositionProviderOnUpdateEjectDirectionRequested; _positionProvider.UpdateHeightRequested -= PositionProviderOnUpdateHeightRequested; _lifetimeSupervisor = null; }
protected virtual void Dispose(bool disposing) { if (_disposed) { return; } if (disposing) { _window?.Close(); _window = null; _lifetimeSupervisor.ShowNotificationRequested -= LifetimeSupervisorOnShowNotificationRequested; _lifetimeSupervisor.CloseNotificationRequested -= LifetimeSupervisorOnCloseNotificationRequested; _positionProvider.UpdatePositionRequested -= PositionProviderOnUpdatePositionRequested; _positionProvider.UpdateEjectDirectionRequested -= PositionProviderOnUpdateEjectDirectionRequested; _positionProvider.UpdateHeightRequested -= PositionProviderOnUpdateHeightRequested; _lifetimeSupervisor = null; } _disposed = true; }