更新配置文件并更新应用程序中的值

时间:2010-07-14 20:58:39

标签: c# .net configuration-files

我目前正在通过* .exe可执行文件更新一个相当大的* .exe.config文件中的一些设置,方法是使用XLinq导航目录并读取/写入值。更新此方法的问题是更改仅在重新启动可执行文件后生效,但我希望更改立即生效。有没有办法告诉可执行文件在我进行更改后重新加载* .exe.config文件?

所有帮助都表示赞赏,并提前致谢!

app.config的外骨骼

<configuration>
  <system.serviceModel>
    <!-- stuff... -->
    <client>
      <!-- this is the section I changed and want to have updated -->
    </client>
  </system.serviceModel>
</configuration>
编辑:我对此主题知之甚少的原因之一是我没有创建app.config - 它是由其他人的代码自动生成的。我必须更改它并让更改在应用程序中生效的原因是代码的另一部分(我无权访问)调用配置文件来获取其数据,但如果我不重新加载然后将使用旧设置,这将不适用于此应用程序。

EDIT2:如果我无法动态更改,我该如何更改代码以便动态完成?最佳答案获得赏金......

4 个答案:

答案 0 :(得分:1)

在应用程序运行时,可以轻松存储和检索范围为“用户”的设置。如果您的设置属于“应用程序”范围,我担心您无法在不重新启动应用程序的情况下修改和重新加载它们。您需要自己推出自己的配置解决方案。

答案 1 :(得分:1)

答案 2 :(得分:1)

基本上,Microsoft以这种方式设计它(在启动时读取配置而不是再次读取),特别是为了阻止你尝试这个,因为* .config文件存在于C:\ Program Files文件夹中,那应该是不可由非管理员写入。

答案 3 :(得分:1)

var client = 
 System.ServiceModel.ChannelFactory<ISampleService>(
  System.ServiceModel.Channels.Binding binding, 
  System.ServiceModel.EndpointAddress remoteAddress)

您也可以通过编程方式连接到服务,并直接为WCF提供所需的配置。

使用它,你不再需要exe中的wcf配置。

https://msdn.microsoft.com/en-us/library/ms576132.aspx