コード例 #1
0
        public void Set(string key, object value, ICacheEntryOptions options)
        {
            DateTime ExpireAt = DateTime.Now.AddTicks(CacheEntryOptions.Expiration.Never.AbsoluteExpirationRelativeToNow.Value.Ticks);

            if (options != null)
            {
                if (options.AbsoluteExpiration != null)
                {
                    ExpireAt = options.AbsoluteExpiration.Value.DateTime;
                }
                else if (options.AbsoluteExpirationRelativeToNow != null)
                {
                    ExpireAt = DateTime.Now.AddTicks(options.AbsoluteExpirationRelativeToNow.Value.Ticks);
                }
                else if (options.SlidingExpiration != null)
                {
                    ExpireAt = DateTime.Now.AddTicks(options.SlidingExpiration.Value.Ticks);
                }
            }
            _client.Store(Enyim.Caching.Memcached.StoreMode.Set, key, value, ExpireAt);

            if (key != _keyCollection && !Keys.Contains(key))
            {
                SyncKeys(Keys.Append(key).ToHashSet <string>());
            }
        }
コード例 #2
0
 public static DistributedCacheEntryOptions Map <T>(this ICacheEntryOptions <T> source) where T : IBaseRequest
 {
     return(new DistributedCacheEntryOptions()
     {
         AbsoluteExpiration = source.AbsoluteExpiration,
         AbsoluteExpirationRelativeToNow = source.AbsoluteExpirationRelativeToNow,
         SlidingExpiration = source.SlidingExpiration
     });
 }
コード例 #3
0
        public void Set(string key, object value, ICacheEntryOptions options)
        {
            var _options = new MemoryCacheEntryOptions()
            {
                AbsoluteExpiration = options.AbsoluteExpiration, AbsoluteExpirationRelativeToNow = options.AbsoluteExpirationRelativeToNow, SlidingExpiration = options.SlidingExpiration
            };

            _options.AddExpirationToken(new CancellationChangeToken(_resetCacheToken.Token));
            _client.Set(key, value, _options);
            _keys.Add(key);
        }
コード例 #4
0
        public void Set(string key, object value, ICacheEntryOptions options)
        {
            var _options = new DistributedCacheEntryOptions();

            if (options != null)
            {
                _options.AbsoluteExpiration = options.AbsoluteExpiration;
                _options.AbsoluteExpirationRelativeToNow = options.AbsoluteExpirationRelativeToNow;
                _options.SlidingExpiration = options.SlidingExpiration;
            }
            _client.Set(key, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), _options);

            if (key != _keyCollection && !Keys.Contains(key))
            {
                SyncKeys(Keys.Append(key).ToHashSet <string>());
            }
        }
コード例 #5
0
 public CachingPipelineBehavior(ICacheEntryOptions <TRequest> cachableModelConfig, IDistributedCache distributedCache, ISerializer serializer)
 {
     _cachableModelConfig = cachableModelConfig;
     _distributedCache    = distributedCache;
     _serializer          = serializer;
 }