public void Set <T>(CacheKey Key, T target, DateTime UTCExpirtTime) where T : class, IModel { Key CacheKey = new WeakCaching.Key(Key.ToString(), typeof(T)); CacheItem <T> item = new CacheItem <T>(target, UTCExpirtTime); _caches[CacheKey] = item; }
public void Delete <T>(CacheKey Key) where T : class, IModel { Key CacheKey = new WeakCaching.Key(Key.ToString(), typeof(T)); Object item; _caches.TryRemove(CacheKey, out item); }
public async Task <T> GetAsync <T>(CacheKey key) where T : class, IModel { Key CacheKey = new WeakCaching.Key(key.ToString(), typeof(T)); if (_caches.TryGetValue(CacheKey, out object obj)) { if (obj is CacheItem <T> ) { CacheItem <T> citem = obj as CacheItem <T>; if (citem.IsCurrent) { return(await Task.FromResult(citem.Target)); } } } return(default);
public async Task <bool> ContainsKeyAsync <T>(CacheKey key) where T : class, IModel { Key CacheKey = new WeakCaching.Key(key.ToString(), typeof(T)); return(await Task.FromResult(_caches.ContainsKey(CacheKey))); }