/// <summary>
        /// 执行
        /// </summary>
        /// <param name="overdueStrategy">缓存过期策略</param>
        /// <param name="absoluteFunc">绝对过期方法</param>
        /// <param name="slidingFunc">滑动过期方法</param>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        protected virtual T Execute <T>(OverdueStrategy overdueStrategy, Func <T> absoluteFunc, Func <T> slidingFunc)
        {
            if (overdueStrategy == null || overdueStrategy.Equals(OverdueStrategy.AbsoluteExpiration))
            {
                return(absoluteFunc.Invoke());
            }

            return(slidingFunc.Invoke());
        }
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="overdueStrategy">缓存过期策略</param>
        /// <param name="absoluteFunc">绝对过期方法</param>
        /// <param name="slidingFunc">滑动过期方法</param>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        protected virtual async Task <T> Execute <T>(OverdueStrategy overdueStrategy, Func <Task <T> > absoluteFunc, Func <Task <T> > slidingFunc)
        {
            if (overdueStrategy == null || overdueStrategy.Equals(OverdueStrategy.AbsoluteExpiration))
            {
                return(await absoluteFunc.Invoke());
            }

            return(await slidingFunc.Invoke());
        }