public void Dispose()
 {
     channel.ObjectReceived          -= IncomingChannelData;
     channel.ConnectionStatusChanged -= LosingConnection;
     baseChannel.Dispose();
     channel.Dispose();
     backStream.Dispose();
 }
        /// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
        public void Dispose()
        {
            baseChannel.ObjectReceived -= ConnectionRequest;
            baseChannel.Dispose();
            if (ownsBroker)
            {
                Broker.Dispose();
            }

            OnDisposed();
        }
 private void TryClose(IMemoryChannel channel)
 {
     try
     {
         channel.Write(new ConnectionDispose());
     }
     catch (Exception ex)
     {
         LogEnvironment.LogDebugEvent(ex.Message, LogSeverity.Warning);
     }
     finally
     {
         channel.ObjectReceived          -= ClientComm;
         channel.ConnectionStatusChanged -= ClientConnectionChanged;
         channel.Dispose();
     }
 }