public void Dispose() { if (Interlocked.Exchange(ref _disposed, 1) == default(int)) { _referenceResolver.Dispose(); _clientSocket.OnOpen -= _clientSocket_OnOpen; _clientSocket.OnClose -= _clientSocket_OnClose; _clientSocket.OnMessage -= _clientSocket_OnMessage; _clientSocket.OnError -= _clientSocket_OnError; _clientSocket.Close(CloseStatusCode.Normal); } }
public void Dispose() { if (!_disposed) { _disposed = true; _referenceResolver.Dispose(); _clientSocket.OnOpen -= _clientSocket_OnOpen; _clientSocket.OnClose -= _clientSocket_OnClose; _clientSocket.OnMessage -= _clientSocket_OnMessage; _clientSocket.OnError -= _clientSocket_OnError; _clientSocket.Close(CloseStatusCode.Normal); } }
protected override void OnDispose() { base.OnDispose(); foreach (delegateKey d in _delegates.Keys) { var havingDelegate = _referenceResolver.ResolveReference(d.Item1); if (havingDelegate == null) { continue; } var ei = havingDelegate.GetType().GetEvent(d.Item2); _removeDelegate(havingDelegate, ei); } _referenceResolver.ReferencePropertyChanged -= _referenceResolver_ReferencePropertyChanged; _referenceResolver.ReferenceDisposed -= _referencedObjectDisposed; _referenceResolver.Dispose(); }
protected override void OnClose(CloseEventArgs e) { foreach (delegateKey d in _delegates.Keys) { IDto havingDelegate = _referenceResolver.ResolveReference(d.Item1); if (havingDelegate != null) { EventInfo ei = havingDelegate.GetType().GetEvent(d.Item2); _removeDelegate(havingDelegate, ei); } } _referenceResolver.ReferencePropertyChanged -= _referenceResolver_ReferencePropertyChanged; _referenceResolver.ReferenceDisposed -= _referencedObjectDisposed; _referenceResolver.Dispose(); Debug.WriteLine("Server: connection closed."); Logger.Info("Connection closed."); base.OnClose(e); }
protected override void OnDispose() { base.OnDispose(); _referenceResolver.Dispose(); _messageHandler.Set(); }