当前位置:  开发笔记 > Android > 正文

.net动态刷新app.config

如何解决《.net动态刷新app.config》经验,为你挑选了3个好方法。

如何在.net Windows应用程序中动态重新加载app.config?我需要动态地打开和关闭日志记录,而不仅仅是基于应用程序启动时的值.

ConfigurationManager.RefreshSection("appSettings")不起作用,我也尝试使用OpenExeConfiguration显式打开配置文件,但我总是在应用程序启动时获取缓存值,而不是当前值.

我接受了创建自定义配置部分的答案.作为旁注和愚蠢的错误 - 如果您从IDE运行,则更新app.config文件并期待更改是没有意义的.Yuo必须修改bin\debug文件夹中的.exe.config文件.卫生署!



1> Patrick Desj..:

你可以按照你说的方式刷新你自己的部分:

ConfigurationManager.RefreshSection("yoursection/subsection");

只需将日志记录true/false移动到一个部分,你就可以了.



2> Mitch Wheat..:

如果您使用的是log4Net,则可以执行以下操作:

虽然可以将log4net配置设置添加到项目app.configweb.config文件中,但最好将它们放在单独的配置文件中.除了可维护性的明显好处之外,它还有一个额外的好处,即log4net可以FileSystemWatcher在配置文件上放置一个对象,以便在其更改和动态更新其设置时进行监视.

要使用单独的配置文件,请将名为Log4Net.config的文件添加到项目中,并将以下属性添加到AssemblyInfo.cs文件中:

[assembly: log4net.Config.XmlConfigurator(ConfigFile="Log4Net.config", Watch = true)]

注意:对于Web应用程序,这假定Log4Net.config驻留在Web根目录中.确保log4net.config文件在属性中标记为"复制到输出" - >"始终复制".



3> 小智..:

以下是你可以放置的hack,这将使配置从磁盘读取.

您只需要在修改模式下保存配置文件,然后刷新它将使应用程序从磁盘读取文件agian.

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有