コード例 #1
0
        public T GetOrPut <T>(string key, Func <T> func, CacheExpiryTime cacheExpiryTime) where T : class
        {
            if (func == null)
            {
                throw new ArgumentNullException(nameof(func));
            }

            var result = this.Get <T>(key) as T;

            if (result != null)
            {
                return(result);
            }

            result = func.Invoke();
            MemoryCache.Default.Add(key, result, DateTime.Now.AddSeconds((int)cacheExpiryTime));

            return(result);
        }
コード例 #2
0
 public async Task SetAsync <T>(string key, T item, CacheExpiryTime cacheExpiryTime = CacheExpiryTime.Small)
 {
     key = GenerateCacheKey <T>(key);
     _cache.Value.Set(key, JsonConvert.SerializeObject(item), TimeSpan.FromHours((int)cacheExpiryTime));
     await Task.CompletedTask;
 }
 public async Task SetAsync <T>(string key, T item, CacheExpiryTime cacheExpiryTime = CacheExpiryTime.Small)
 {
     await SetCustomValueAsync(key, item, TimeSpan.FromMinutes((int)cacheExpiryTime));
 }
コード例 #4
0
 public void Put <T>(string key, T item, CacheExpiryTime cacheExpiryTime)
 {
     MemoryCache.Default.Add(key, item, DateTime.Now.AddSeconds((int)cacheExpiryTime));
 }