2

在我的应用程序中,我将一些 xml 文件读入对象列表 ( List<Thing>),但我想避免每次请求都访问文件系统。xml 文件中的数据很少更改,所以我想以某种方式对其进行缓存。在应用程序启动时加载数据或延迟加载数据,对我来说都很好。我需要能够在整个应用程序中使用数据并对它运行 Linq 查询,几乎将它用作内存中的迷你数据库。我需要能够在不影响缓存版本的情况下更改/更新数据,因此可能还需要将数据复制到局部变量。我怎样才能做到这一点?

4

2 回答 2

2

您可以使用缓存对象。

myxmllist = HttpContext.Current.Cache["myxmllist"];

    if (myxmllist == null)
    {
        //get xml from server

        HttpContext.Current.Cache.Insert("myxmllist", myxmllist); // add it to cache
    }
于 2013-05-29T18:06:42.807 回答
1

System.Runtime.Caching.MemoryCacheor的主要好处之一System.Web.Caching.Cache是能够为您缓存的项目设置过期策略。如果您打算只加载一次数据并在进程的生命周期内将其保存在内存中,那么您也可以使用您创建的静态类成员并在同一类的静态构造函数中填充数据。如果您的更改/更新操作不应影响内存中的数据,则需要将数据加载(或复制)到另一个容器实例中并更改(并可能保存)它。

于 2013-05-29T18:59:32.630 回答