软谋补课中,Eleven老师讲到泛型的使用技巧:泛型缓存,刚好自己项目中也有用到缓存系统参数表的信息,之前都是直接读取表数据,每个需要缓存的表需要创建一个静态类,不利于扩展,这里将Eleven老师讲的泛型缓存简单的拓展了一下,可以根据版本信息更新缓存,不多说直接上代码:
/// <summary>
/// 使用泛型实现缓存:
/// 区别于之前用字典或静态变量存储缓存,这里不同类型的“T”会被即时编译为不同的类型从而实现缓存
/// </summary>
/// <typeparam name="T">缓存的数据类型 例如用户信息表实体:UserInfo</typeparam>
public static class LisStaticCache<T> where T : class
{
/// <summary>
/// 版本:可以从数据库的表或配置文件中读取,每次取值时查询是否更新缓存
/// </summary>
private static string _version = string.Empty;
/// <summary>
/// 缓存:缓存的内容
/// </summary>
private static List<T> _genericCache = null;
/// <summary>
/// 错误信息:保存缓存数据失败时的错误信息
/// </summary>
private st