代码之家  ›  专栏  ›  技术社区  ›  Tony Borf

LINQ到XML查询

  •  1
  • Tony Borf  · 技术社区  · 16 年前

    我正在使用LINQtoXML在页面加载时填充下拉列表。如何缓存结果,以便不必每次加载页面时都运行查询?此外,XML文件每天只更新一次。是缓存还是每次都读?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Jon Skeet    16 年前

    呼叫 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;
            }
        }
    }
    
        2
  •  0
  •   Max    16 年前

    使用标准缓存技术。请看 this post .