Files
YunTongJackYunTask/Reportapi/MyCode.Project.Infrastructure/Common/CacheHelper.cs

42 lines
1.4 KiB
C#
Raw Normal View History

2025-07-04 09:50:02 +08:00
using MyCode.Project.Infrastructure.Cache;
using MyCode.Project.Infrastructure.Exceptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Infrastructure.Common
{
public static class CacheHelper
{
#region GetCacheValue()
/// <summary>
/// 得到缓存中的值,用法: CacheHelper.GetCacheValue<long>("id",() => IdHelper.GetNewId());
/// </summary>
/// <typeparam name="T">要返回的对象实体</typeparam>
/// <param name="cacheKey">缓存key</param>
/// <param name="func">执行的函数</param>
/// <param name="cacheSecond">多少秒默认60</param>
/// <returns></returns>
public static T GetCacheValue<T>(string cacheKey,
Func<T> func,
int cacheSecond = 60)
{
if (string.IsNullOrWhiteSpace(cacheKey)) { throw new BaseException("缓存key参数cacheKey不能为空"); }
var cache = new SystemCache();
//该Token已经存在缓存了
if (cache.Exists(cacheKey)) { return cache.Get<T>(cacheKey); }
var returnValue = func.Invoke();
if (returnValue != null) { cache.Set(cacheKey, returnValue, new TimeSpan(0, 0, cacheSecond)); }
return returnValue;
}
#endregion
}
}