protected void OpenSession(TConnection connection) { Session = _sessionFactory.Create(connection); _executor = _executorFactory.Create(Session); _dispatcher.Subscribe((IResponseReceiver <TResponse>)_executor); SessionOpened?.Invoke(Session); }
protected void CloseSession() { _executor = null; if (Session == null) { return; } try { SessionClosed?.Invoke(Session); } finally { Session.OnClosingSession(); Session = NotConnectedSession.Default; } }