钉钉的客户端开发和服务端有一个重要的区别,服务端只需要得到access_token就可以了,而客户端还需要进一步换取jsticket。所以我们要进行客户端的开发,第一步就是得到jsticket。又由于jsticket有7200秒的限制,而且每请求一次前面的就会失效,为此我们需要做一个缓存层来保存。
首先我们来看缓存层的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DDSDK
{
/// <summary>
/// 简易缓存
/// </summary>
public class SimpleCacheProvider : ICacheProvider
{
private static SimpleCacheProvider _instance = null;
private static readonly object _lockObj=new object();
#region GetInstance
/// <summary>
/// 获取缓存实例
/// </summary>
/// <returns></returns>
public static SimpleCacheProvider GetInstance()
{
if (_instance == null) lock(_lockObj){_instance =_instance?? new SimpleCacheProvider()};//使用单例模式以确保并发时实例始终是同一个
return _instance;
}
#endregion
private Dictionary<string, CacheItem> _caches;
private SimpleCacheProvider()
{
this._caches = new Dictionary<string, CacheItem>();
}
#region GetCache
/// <summary>
/// 获取缓存
/// </summary>
/// <param name="key"></param>