v9.6.2017.0808   重构正向工程,基于映射表查找数据库字段类型到实体类型的映射
大石头 编写于 2017-08-08 21:38:06
X
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using System.Text;
using System.Threading.Tasks;

namespace NewLife.Caching
{
    class MyCache : Cache
    {
        #region 属性
        private MemoryCache _cache;
        #endregion

        #region 构造
        public MyCache()
        {
            _cache = MemoryCache.Default;
            Name = _cache.Name == "Default" ? "Memory" : _cache.Name;

        }
        #endregion

        #region 方法
        /// <summary>是否包含缓存项</summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public override Boolean Contains(String key) { return _cache.Contains(key); }

        /// <summary>添加缓存项</summary>
        /// <param name="key">键</param>
        /// <param name="value">值</param>
        /// <param name="expire">过期时间,秒</param>
        /// <returns></returns>
        public override Boolean Add(String key, Object value, Int32 expire = 0) { return _cache.Add(key, value, expire == 0 ? DateTimeOffset.MaxValue : DateTimeOffset.UtcNow.AddSeconds(expire)); }

        /// <summary>添加获取缓存项</summary>
        /// <param name="key">键</param>
        /// <param name="value">值</param>
        /// <param name="expire">过期时间,秒</param>
        /// <returns></returns>
        public override Object AddOrGet(String key, Object value, Int32 expire = 0) { return _cache.AddOrGetExisting(key, value, expire == 0 ? DateTimeOffset.MaxValue : DateTimeOffset.UtcNow.AddSeconds(expire)); }

        /// <summary>获取缓存项</summary>
        /// <param name="key">键</param>
        /// <returns></returns>
        public override Object Get(String key) { return _cache.Get(key); }

        /// <summary>移除缓存项</summary>
        /// <param name="key">键</param>
        /// <returns></returns>
        public override Object Remove(String key) { return _cache.Remove(key); }
        #endregion
    }
}