/// <summary> /// Not used /// </summary> /// <param name="owningCacheItem">Not used</param> public void Initialize(CacheItem owningCacheItem) { }
/// <summary> /// Adds cache with specified key. /// </summary> /// <param name="key">The key.</param> /// <param name="value">The obj.</param> /// <param name="expirations">The expiration strategy.</param> public void Add(string key, object value, params ICacheItemExpiration[] expirations) { ValidateKey(key); CacheItem cacheItemBeforeLock = null; lock (inMemoryCache.SyncRoot) { if (!inMemoryCache.Contains(key)) { cacheItemBeforeLock = new CacheItem(key, value, expirations); inMemoryCache[key] = cacheItemBeforeLock; } else { cacheItemBeforeLock = (CacheItem)inMemoryCache[key]; try { cacheItemBeforeLock.Replace(value, expirations); inMemoryCache[key] = cacheItemBeforeLock; } catch { inMemoryCache.Remove(key); throw; } } } }