/// <summary> /// Inserts an item into the cache. /// </summary> /// <param name="key"> /// Item key. /// </param> /// <param name="value"> /// Item value. /// </param> /// <param name="timeToLive"> /// Item's time-to-live. /// </param> /// <param name="slidingExpiration"> /// Flag specifying whether the item's time-to-live should be reset /// when the item is accessed. /// </param> /// <param name="itemPriority"> /// Item priority. /// </param> public void Insert(object key, object value, TimeSpan timeToLive, bool slidingExpiration, CacheItemPriority itemPriority) { AssertUtils.ArgumentNotNull(key, "key"); AssertUtils.State(TimeSpan.Zero <= timeToLive, "timeToLive"); if (Log.IsDebugEnabled) { Log.Debug(string.Format("adding item '{0}' to cache '{1}'", key, this._cacheName)); } if (TimeSpan.Zero < timeToLive) { if (slidingExpiration) { TimeSpan slidingExpirationSpan = timeToLive; _cache.Insert(GenerateKey(key), value, null, Cache.NoAbsoluteExpiration, slidingExpirationSpan, itemPriority, null); } else { DateTime absoluteExpiration = DateTime.Now.Add(timeToLive); _cache.Insert(GenerateKey(key), value, null, absoluteExpiration, Cache.NoSlidingExpiration, itemPriority, null); } } else { _cache.Insert(GenerateKey(key), value, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, itemPriority, null); } }