WebConfigurationManager.AppSettings的缓存?

我有很多请求读取我的Web Config文件

variable = WebConfigurationManager.AppSettings["BLAH"] 

WebConfigurationManager.AppSettings每次都从磁盘读取,还是缓存在内存中?

如果每次从磁盘读取,我想我需要将变量移动到静态变量,以提高我的应用程序性能。

配置设置缓存在内存中,每次调用此函数时都不会解析web.config。

我只是在研究这个主题。 确实,配置设置缓存在内存中。

但是,您仍然可以通过将值存储在静态变量中来查看性能优势(如此处所述)。 这是因为AppSettings集合是NameValueCollection 。 因此,每次引用AppSetting时,都必须搜索O(n)操作的集合。

尽管如此,这可能是一个罕见的事情,这将成为您的应用程序的瓶颈。 但是可以想象一个具有紧密循环的场景引用AppSettings中的单个值,其中AppSettings集合非常大。 在这种情况下,您也可以以某种方式缓存值,即使它只是在开始循环之前将其存储在局部变量中。