首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果更改,请重新加载xml文件

如果更改,请重新加载xml文件
EN

Stack Overflow用户
提问于 2010-09-21 01:53:32
回答 5查看 6.5K关注 0票数 1

我有一个XML文件,我将我的一些应用程序设置保存在其中。

我读取这个xml文件并将其缓存到内存中,如果我更改了设置,我想从xml文件中读取最新的更改,但我如何知道xml文件是否已更改?

我正在web上下文中运行此应用程序(asp.net)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-21 02:13:14

已经回答了'FileSystemWatcher‘选项,但您也可以使用具有’文件依赖性‘的ASP.NET缓存。

我假设您不希望将实时更新发送到浏览器,您只希望在其他代码运行时在服务器端使用新值。

在应用程序启动时,您的应用程序读取该文件,并将设置对象插入到ASP.NET缓存中,其中包含一个“文件依赖项”。每次检查代码时,都会检查对象是否在缓存中,如果找到,则继续使用相同的对象。当文件发生变化时,你猜到了,缓存将驱逐你的设置的旧副本,这意味着你将从缓存中得到null。此时,您的“启动”代码路径再次运行,重新加载文件,并将新的设置对象重新插入到缓存中(带有依赖项)。

ASP.NET缓存是线程安全的,只要您的反序列化不会导致任何副作用,在没有任何锁定或同步的情况下读取和插入就是安全的。(这意味着两个请求/线程可以同时重新读取更新的设置文件,但只要文件很小,这通常是可以的。)IIRC FileSystemWatcher解决方案更难正确,并且需要同步。

http://www.dotnetfunda.com/articles/article791-data-caching-with-file-dependency-in-aspnet-.aspx

票数 1
EN

Stack Overflow用户

发布于 2010-09-21 01:57:11

您可以使用FileSystemWatcher类来监视该文件。

或者,您可能希望在appSettings或自定义配置节的web.config文件中考虑节约设置。当您的配置更改时,您的web应用程序将自动重新加载。

票数 3
EN

Stack Overflow用户

发布于 2010-09-21 01:57:56

如果您将应用程序设置放在app.config文件中,则可以使用以下命令强制更新缓存的设置:

代码语言:javascript
复制
 //update app settings
 ConfigurationManager.RefreshSection("appSettings");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3754038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档