ABP 使用cache缓存
Posted lmuquan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABP 使用cache缓存相关的知识,希望对你有一定的参考价值。
using Abp.Application.Services.Dto; using Abp.Runtime.Caching; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Schema; using Senparc.CO2NET.HttpUtility; using Senparc.Weixin.CommonAPIs.ApiHandlerWapper; using Senparc.Weixin.MP.Containers; using Senparc.Weixin.MP.Entities; using System; using System.Collections.Generic; using System.Configuration; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; namespace AbpProject.WeiXinMPCache public class MPCacheAppService : AbpProjectAppServiceBase, IMPCacheAppService /// <summary> /// appid /// </summary> private readonly string AppIdSAddress = "WeiXinMP:AppID"; /// <summary> /// appsecret /// </summary> private readonly string AppSecretAddress = "WeiXinMP:AppSecret"; /// <summary> /// 获取token的路径 /// </summary> private readonly string AccTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=0&secret=1"; private readonly ICacheManager _cacheManager; private readonly IConfiguration _appConfiguration; public MPCacheAppService(IConfiguration appConfiguration, ICacheManager cacheManager) _appConfiguration = appConfiguration; _cacheManager = cacheManager; /// <summary> /// 获取公众微信号的token /// </summary> /// <returns></returns> public async Task<string> GetAccessToken() var acctoken = await _cacheManager.GetCache("WeiXinMP").GetOrDefaultAsync("AccessToken"); if (acctoken == null || string.IsNullOrEmpty(acctoken.ToString())) var appId = _appConfiguration[AppIdSAddress]; var appSecret = _appConfiguration[AppSecretAddress]; var url = string.Format(AccTokenUrl, appId, appSecret); var result = HttpClientHelper<AccessTokenResult>.Get(url,new AccessTokenResult()); if (result != null) await _cacheManager.GetCache("WeiXinMP").SetAsync("AccessToken", result.access_token, TimeSpan.FromHours(2)); return result.access_token; return acctoken.ToString();
以上是关于ABP 使用cache缓存的主要内容,如果未能解决你的问题,请参考以下文章
基于DDD的.NET开发框架 - ABP缓存Caching实现