public void Dispose()
        {
            ChannelFactory <T> disposable;

            lock (this.gate)
            {
                disposable   = this.factory;
                this.factory = null;
            }
            Utils.DisposeBestEffort(disposable);
        }