有没有办法在运行时切换应用程序app.config(current.config到new.config,文件为file).我有一个备份/恢复过程,需要替换自己的application.exe.config文件.我看过这篇文章,但它没有回答如何在运行时这样做.
事实证明,我可以将.config文件替换为新文件,并为每个部分执行ConfigurationManager.RefreshSection(...).它将从新的.config文件更新.
Microsoft .NET app.config
不是为您的场景以及许多其他场景设计的.我经常遇到类似的需求,因此我花了很多精力设计解决方案.
重新设计app.config
仅用作配置引导程序:指定在何处查找其他实际配置数据.此信息几乎不会更改,因此无需处理文件监视或应用程序重新启动.
为实际配置数据选择一个备用位置:文件,数据库,甚至是Web服务.我大多数时候都喜欢数据库,所以我创建了一个配置表,其结构简单,允许我存储我的数据.
实现一个简单的库来包装您的配置访问,以便为您的应用程序的其余部分提供一个简单的API(通过依赖注入).隐藏使用app.config
以及您的实际配置存储位置.由于.NET是强类型的,因此请进行配置设置 - 将检索到的每个字符串转换为可用的最具体类型(URL,Int32,FileInfo等).
确定可以在运行时安全地更改哪些配置设置与不能安全更改的配置设置.通常,某些设置需要与其他设置一起更改,或者根本不允许它们进行更改.如果所有配置数据都可以在运行时安全地更改,那么这会让事情变得简单,但我强烈怀疑这种情况.尽可能隐藏配置设置的可变性和相互依赖性.
设计对实际配置数据不可用的响应.我更喜欢将缺少任何配置设置视为中止应用程序的致命错误,除非我可以识别可用的默认值.同样,我在没有配置存储容器(文件,数据库表等)的情况下中止.
享受,祝福.