private void Cleanup() { AmqpChannelFactory.SharedAmqpConnection sharedAmqpConnection; string str = AmqpChannelFactory.CreateSharedAmqpConnectionsKey(this.host, this.port); this.amqpChannelFactory.sharedAmqpConnections.TryRemove(str, out sharedAmqpConnection); this.amqpChannelFactory.amqpChannelEvents.OnSessionClosed(); }
protected override IOutputChannel OnCreateChannel(EndpointAddress address, Uri via) { AmqpChannelFactory.SharedAmqpLink orAdd; AmqpChannelFactory.SharedAmqpConnection sharedAmqpConnection; if (!this.sharedAmqpLinks.TryGetValue(via.AbsoluteUri, out orAdd)) { string str = AmqpChannelFactory.CreateSharedAmqpConnectionsKey(via.Host, via.Port); if (!this.sharedAmqpConnections.TryGetValue(str, out sharedAmqpConnection)) { sharedAmqpConnection = this.sharedAmqpConnections.GetOrAdd(str, new AmqpChannelFactory.SharedAmqpConnection(this, via.Host, via.Port, this.transportBindingElement.AmqpSettings)); } orAdd = this.sharedAmqpLinks.GetOrAdd(via.AbsoluteUri, new AmqpChannelFactory.SharedAmqpLink(this, sharedAmqpConnection, via)); } return(new AmqpChannelFactory.AmqpOutputChannel(orAdd, this, address, via)); }