public override TopologyExtractor GetExtractor(DirectoryObject directoryObject)
        {
            if (directoryObject is DirectoryMailbox)
            {
                return(this.realFactory.GetExtractor(directoryObject));
            }
            TopologyExtractor value;

            if (!this.extractors.TryGetValue(directoryObject.Guid, out value))
            {
                TopologyExtractor extractor = this.realFactory.GetExtractor(directoryObject);
                if (extractor != null)
                {
                    value = new CachingTopologyExtractor(this.realFactory, directoryObject, base.Logger, extractor, SimpleTimer.CreateTimer(LoadBalanceADSettings.Instance.Value.LocalCacheRefreshPeriod));
                }
                this.extractors.TryAdd(directoryObject.Guid, value);
            }
            return(this.extractors[directoryObject.Guid]);
        }