关于实时修改App.config并且获取问题的一个解决方案

在程序运行时候,我们有时候需要修改配置文件。通过查阅网上资料,通常的做法有两种,一种就是将app.config视为一个xml文本去处理,这方面我就不去说了,另一个方法就是通过自带的类库去修改,这个网上也有资料,我就不多说。

我这里要说的是,在使用Configuration 类去修改时候,获取文件的方式不同,会产生不同的结果,这么说可能不太容易理解,我通过举一个例子,方便大家理解:

一:通过编译时修改

 Configuration config = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly ().Location);

这个实例化是通过获取文件的路径来修改配置文件,所以在修改以后,是无法获取到文件修改信息的。只有在下次启动程序的时候,才能够获取到修改后的信息。

二:通过运行时修改

 Configuration config1 = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

这个实例化能够修改配置文件,并且实时的获取到修改后的信息。不过在下次启动程序的时候,却还是按照原来的配置文件的信息去运行。

 

所以这两个方法各有利弊,如果需要修改,并且实时的去获取,以及下次运行仍旧保存修改后的信息的,那就将这两个方法同时去使用,能够的到效果。

代码如下:

Configuration config = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly ().Location);            

config.AppSettings.Settings.Remove(key);            

config.AppSettings.Settings.Add(key, value);            

config.Save();

Configuration config1 = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);            

config1.AppSettings.Settings[key].Value = value;            

config1.Save();            

          

ConfigurationManager.RefreshSection("appSettings");

 

以上是我解决这个问题的方法, 希望有更好的方法的话,在评论里告诉我,同时也让困扰于此问题的同仁,有一个解决方案。不喜勿喷!

转载于:https://www.cnblogs.com/LeosSky/p/3470905.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值