Example #1
0
 /// <summary>
 /// Not used
 /// </summary>
 /// <param name="owningCacheItem">Not used</param>
 public void Initialize(CacheItem owningCacheItem)
 {
 }
Example #2
0
        /// <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;
                    }
                }
            }
        }