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]); }