基于winform命令行参数覆盖AppSettings和connectionstring

本文关键字:AppSettings connectionstring 覆盖 参数 winform 命令行 基于 | 更新日期: 2023-09-27 17:55:01

我们有一个c# webform应用程序,它将AppSettings和数据库ConnectionStrings configSource放到单独的文件中。

<appSettings configSource="Customisations/AppSettings.config" />

我被要求允许最终用户连接到不同的数据库,并根据他们使用的应用程序快捷方式使用不同的应用程序设置。

我希望能够允许最终用户通过在应用程序快捷方式的目标行中添加下面的参数来有效地覆盖configSource。

myApp.exe appSettings = ' ' ' unc路径' app-settings-test.config"

这可能吗?是否存在安全问题,例如UAC?

如果好了…我如何使应用程序加载AppSettings和ConnectionStrings从这些覆盖的位置,但保持当前配置文件完好无损?

基于winform命令行参数覆盖AppSettings和connectionstring

我建议将配置文件(包括路径)传递给string[] args并在打开配置文件之前读取它。然而,关于安全方面,你应该检查某些语法等,例如,如果路径包含";"或")"等等…或者您可以通过regexp检查给定的路径是否具有正确的结构。不管怎样,搜索谷歌(或这个论坛)…Google会引导你到这里;))for string[] args.