我正在将MyApp.exe.config
文件作为xml复制到一个单独的位置。
我正在使用此自定义配置文件在应用程序运行时访问和更改某些设置,而不是使用ConfigurationManager.<section>
修改app.config
。
问题是,默认的app.config文件可能会在用户计算机的后期更新,我想将这些更改传播回我的自定义配置文件。
这样做的最佳方式是什么?
<configSections>
<section name="" type="" />
</configSections>
<appSettings>
<add key="" value="" />
</appSettings>
<ConnectionManangerProviders>
<provider name="" enabled="" type="">
<pollingInterval></pollingInterval>
</provider>
</ConnectionManagerProviders>
<QueueManagerProviders>
<provider name="" enabled="" type="unique" encrypted="" signed="" cryptoProvider="" />
<provider name="" enabled="" type="unique" encrypted="" signed="" cryptoProvider="">
<queueName></queueName>
</provider>
<provider name="" enabled="" type="unique" encrypted="" signed="" cryptoProvider="">
<applicationName></applicationName>
<connectionString></connectionString>
</provider>
</QueueManagerProviders>
例如,这是配置文件的外观。假设在app.config中修改了<QueueManagerProviders>
下元素的其中一个值,如何将此文件中的数据传递给方法,以便该方法可以有效地解析它并更新相应的部分我创建的自定义配置文件?
答案 0 :(得分:0)
这有关于糟糕设计的尖叫,可能有更好的方法来实现整个功能。但是,如果您无法控制“服务”部分,那么您就会陷入困境......
您可能需要FileSystemWatcher“当目录或目录中的文件发生更改时,”侦听文件系统更改通知并引发事件。“
添加事件处理程序,如果文件发生更改,请再次读取整个文件并解析它。
答案 1 :(得分:0)
实现自定义ConfigSection处理程序(请参阅http://msdn.microsoft.com/en-us/library/2tw134k3(v=vs.100).aspx)。