internal void Add(CorrelationCacheKey key, CorrelationKey value)
 {
     Fx.Assert(key != null, "Cannot add a null CorrelationCacheKey to the cache.");
     lock (this.cacheLock)
     {
         this.cache.Add(key, value);
     }
 }
            CorrelationKey GetInstanceKey(Dictionary <string, string> values)
            {
                // We only optimize for upto 3 keys
                if (values.Count <= 3)
                {
                    CorrelationKey      correlationKey;
                    CorrelationCacheKey cacheKey = CorrelationCacheKey.CreateKey(values);
                    if (this.parent.keyCache.TryGetValue(cacheKey, out correlationKey))
                    {
                        return(correlationKey);
                    }

                    correlationKey = new CorrelationKey(values, this.parent.scopeName.ToString(), null);
                    this.parent.keyCache.Add(cacheKey, correlationKey);
                    return(correlationKey);
                }

                return(new CorrelationKey(values, this.parent.scopeName.ToString(), null));
            }
 internal bool TryGetValue(CorrelationCacheKey key, out CorrelationKey value)
 {
     value = (CorrelationKey)this.cache.GetValue(this.cacheLock, key);
     return(value != null);
 }