public override Hashtable GetStore() { var cache = HttpRuntime.Cache; var locker = new DoubleLocker<Hashtable>( () => cache[BucketName] as Hashtable, () => { var bucket = new Hashtable(); cache.Add(BucketName, bucket, null, Cache.NoAbsoluteExpiration, expiration, PRIORITY, ItemRemovedCallback); OnBucketCreation(); return bucket; }); return locker.Create(); }
public override Hashtable GetStore() { if (!RunningInWebContext) throw new InvalidOperationException( "An ASP.Net session must be available when using Session storage. No ASP.Net session was found in the current context."); var locker = new DoubleLocker<Hashtable>( () => HttpContext.Current.Session[BucketName] as Hashtable, () => { var bucket = new Hashtable(); HttpContext.Current.Session[BucketName] = bucket; OnBucketCreation(); return bucket; }); return locker.Create(); }