Files
chfei fa03add754 增加同步物流模块
修改现有架构,改为分模块( 简易版)
2026-09-22 17:52:42 +08:00

100 lines
2.7 KiB
C#

using System;
namespace MAX.Core.Caches;
/// <summary>
/// 缓存
/// </summary>
public interface ICache
{
/// <summary>
/// 是否存在指定键的缓存
/// </summary>
/// <param name="key">缓存键</param>
bool Exists(string key);
/// <summary>
/// 从缓存中获取数据
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
T Get<T>(string key);
/// <summary>
/// 从缓存中获取数据,如果不存在,则执行获取数据操作并添加到缓存中
/// </summary>
/// <typeparam name="T">缓存数据类型</typeparam>
/// <param name="key">缓存键</param>
/// <param name="func">获取数据操作</param>
T Get<T>(string key, Func<T> func);
/// <summary>
/// 当缓存数据不存在则添加,已存在不会添加,添加成功返回true
/// </summary>
/// <typeparam name="T">缓存数据类型</typeparam>
/// <param name="key">缓存键</param>
/// <param name="value">值</param>
bool TryAdd<T>(string key, T value);
/// <summary>
/// 覆盖添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
bool OverlayAdd<T>(string key, T value);
/// <summary>
/// 移除缓存
/// </summary>
/// <param name="key">缓存键</param>
void Remove(string key);
/// <summary>
/// 清空缓存
/// </summary>
void Clear();
}
public interface ICache<T>
{
/// <summary>
/// 是否存在指定键的缓存
/// </summary>
/// <param name="key">缓存键</param>
bool Exists(string key);
/// <summary>
/// 从缓存中获取数据,如果不存在,则执行获取数据操作并添加到缓存中
/// </summary>
/// <typeparam name="T">缓存数据类型</typeparam>
/// <param name="key">缓存键</param>
T Get(string key);
/// <summary>
/// 从缓存中获取数据,如果不存在,则执行获取数据操作并添加到缓存中
/// </summary>
/// <typeparam name="T">缓存数据类型</typeparam>
/// <param name="key">缓存键</param>
/// <param name="func">获取数据操作</param>
T Get(string key, Func<T> func);
/// <summary>
/// 当缓存数据不存在则添加,已存在不会添加,添加成功返回true
/// </summary>
/// <typeparam name="T">缓存数据类型</typeparam>
/// <param name="key">缓存键</param>
/// <param name="value">值</param>
bool TryAdd(string key, T value);
/// <summary>
/// 覆盖添加
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
bool OverlayAdd(string key, T value);
/// <summary>
/// 移除缓存
/// </summary>
/// <param name="key">缓存键</param>
void Remove(string key);
/// <summary>
/// 清空缓存
/// </summary>
void Clear();
}