我正在使用LinQ to XML在我的页面加载时填充下拉列表。如何缓存结果,以便每次页面加载时都不必运行查询?此外,xml文件每天只会更新一次。每次缓存或只读它是否更好?
答案 0 :(得分:1)
对查询结果调用ToList()
。然后将结果缓存到静态变量中,以线程安全的方式访问:
private static List<Whatever> dropDownListValues;
private static object listLock = new object();
public static IList<Whatever> DropDownListValues
{
get
{
lock(listLock)
{
if (dropDownListValues == null ||
DetectValuesChanged()) // However you implement this!
{
dropDownListValues = // insert your query here
.ToList();
}
return dropDownListValues;
}
}
}
答案 1 :(得分:0)
使用标准缓存技术。请参阅this post。