コード例 #1
0
 private void CacheItemRemove(string name, object obj1, CacheItemRemovedReason reason1)
 {
     try
     {
         CacheValue <TKey, TValue> value2 = (CacheValue <TKey, TValue>)obj1;
         if (reason1 != CacheItemRemovedReason.Removed)
         {
             base.Remove(value2.Key);
         }
         this.TryCacheItemRemove(value2.Key.Key);
         if (this.RemoveCallback != null)
         {
             this.RemoveCallback(value2.Key.Key, value2.Value);
         }
     }
     catch (ThreadAbortException)
     {
         throw;
     }
     catch (OutOfMemoryException)
     {
         throw;
     }
     catch (Exception exception)
     {
         SynchronizedCachedSingletonFactory <TKey, TValue> .logger.Error(exception);
     }
 }
コード例 #2
0
        public override bool TryGet(CacheKey <TKey, TValue> key, out CacheValue <TKey, TValue> value)
        {
            object obj2 = this.cache[key.AspCacheKey];

            if (obj2 == null)
            {
                return(base.TryGet(key, out value));
            }
            value = (CacheValue <TKey, TValue>)obj2;
            return(true);
        }
コード例 #3
0
        private bool Create(CacheKey <TKey, TValue> key, out CacheValue <TKey, TValue> value)
        {
            TValue local;

            if (this.DoCreateMethod(key.Key, out local))
            {
                value = new CacheValue <TKey, TValue>(key, local);
                return(true);
            }
            value = new CacheValue <TKey, TValue>();
            return(false);
        }
コード例 #4
0
 protected abstract void InsertIntoCache(string key, CacheValue <TKey, TValue> instance, TimeSpan cacheTimeSpan, CacheItemRemovedCallback callback);
コード例 #5
0
 protected override void DoAdd(CacheKey <TKey, TValue> key, CacheValue <TKey, TValue> value)
 {
     base.DoAdd(key, value);
     this.TryAdd(key.Key, key);
     this.InsertIntoCache(key.AspCacheKey, value, this.cacheTimeOut, new CacheItemRemovedCallback(this.CacheItemRemove));
 }
コード例 #6
0
 /// <summary>
 /// Inserts an item into the asp net cache with absolute caching.
 /// </summary>
 /// <param name="key">The key. </param>
 /// <param name="instance">The instance.</param>
 /// <param name="cacheTimeSpan">The total time to keep the instance in cache.</param>
 /// <param name="callback">The remove callback.</param>
 protected override void InsertIntoCache(string key, CacheValue <TKey, TValue> instance, TimeSpan cacheTimeSpan, CacheItemRemovedCallback callback)
 {
     //base.Cache[key] instance, null, Add(cacheTimeSpan), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, callback);
 }
コード例 #7
0
ファイル: CacheValue.cs プロジェクト: sy545633799/NetworkCore
        public override bool Equals(object obj)
        {
            CacheValue <TKey, TValue> value2 = (CacheValue <TKey, TValue>)obj;

            return(this.Value.Equals(value2.Value));
        }