利用静态构造函数的机制,缓存数据。
public static class DataCache
{
static DataCache()
{
// 利用静态构造函数的机制,第一次加载所有数据
// 当调用DataCache时,第一次会执行此处code,此处code可初始化数据,以后则不会调用此处code,已达到缓存数据效果。
// 如果此处不写代码,也没关系,比如其他地方调用GetAllCategories(),那么第一次会初始化_all,后续则直接用_all,不会再初始化。
}
private static List<int> _all = null;
private static object _locker = new object();
public static List<int> GetAllCategories()
{
if (_all == null)
{
lock (_locker)
{
if (_all == null)
{
//从数据库中获取所有数据
_all = new List<int>() { 1, 2 };
}
}
}
return _all;
}
public static void ClearCache()
{
_all = null;
}
}