private void DumpState()
        {
            Logger.InfoFormat("Dumping currently checked out IRedisClient instances");
            var inUseInstances = new Func <TrackingFrame[]>(() =>
            {
                lock (this.trackingFrames)
                {
                    return(Enumerable.ToArray(this.trackingFrames));
                }
            }).Invoke();

            var summaryByType = inUseInstances.GroupBy(x => x.ProvidedToInstanceOfType.FullName);

            foreach (var grouped in summaryByType)
            {
                Logger.InfoFormat("{0,60}: {1,-9} oldest {2}", grouped.Key, grouped.Count(),
                                  grouped.Min(x => x.Initialised));
            }

            foreach (var trackingFrame in inUseInstances)
            {
                Logger.DebugFormat("Instance {0} allocated to {1} at {2} ({3})", trackingFrame.Id,
                                   trackingFrame.ProvidedToInstanceOfType.FullName, trackingFrame.Initialised,
                                   trackingFrame.ProvidedToInstanceOfType.FullName);
            }
        }
        private void DumpState()
        {
            Logger.InfoFormat("Dumping currently checked out IRedisClient instances");
            var inUseInstances = new Func<TrackingFrame[]>(() =>
            {
                lock (this.trackingFrames)
                {
                    return Enumerable.ToArray(this.trackingFrames);
                }
            }).Invoke();

            var summaryByType = inUseInstances.GroupBy(x => x.ProvidedToInstanceOfType.FullName);
            foreach (var grouped in summaryByType)
            {
                Logger.InfoFormat("{0,60}: {1,-9} oldest {2}", grouped.Key, grouped.Count(),
                    grouped.Min(x => x.Initialised));
            }

            foreach (var trackingFrame in inUseInstances)
            {
                Logger.DebugFormat("Instance {0} allocated to {1} at {2} ({3})", trackingFrame.Id,
                    trackingFrame.ProvidedToInstanceOfType.FullName, trackingFrame.Initialised,
                    trackingFrame.ProvidedToInstanceOfType.FullName);
            }
        }