コード例 #1
0
        public override TValue Get <TValue>(string key, Func <TValue> missingFunc)
        {
            key = GetKey <TValue>(key);
            TValue value;

            if (!TryGetValueInternal(key, out value))
            {
                value = missingFunc();
                var cacheValue = new CacheValue(value, SystemTime.UtcNow() + Expiration);
                _internalCache[key] = cacheValue;
            }
            return(value);
        }
コード例 #2
0
        public async override Task <TValue> GetAsync <TValue>(string key, Func <Task <TValue> > missingFunc)
        {
            key = GetKey <TValue>(key);
            TValue value;

            if (!TryGetValueInternal(key, out value))
            {
                value = await missingFunc();

                if (value != default(TValue))
                {
                    var cacheValue = new CacheValue(value, SystemTime.UtcNow() + Expiration);
                    _internalCache[key] = cacheValue;
                }
            }
            return(value);
        }
コード例 #3
0
 public override void Add <TValue>(string key, TValue value)
 {
     key = GetKey <TValue>(key);
     _internalCache[key] = new CacheValue(value, SystemTime.UtcNow() + Expiration);
 }