根据winform命令行参数覆盖AppSettings和ConnectionStrings

时间:2016-07-04 10:02:07

标签: c# winforms command-line-arguments configurationmanager

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

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

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

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

  

myApp.exe appSettings =&#39; \\ unc-path \ app-settings-test.config&#39;

这可能吗?是否有任何安全问题,即UAC?

如果可以...... 如何让应用程序从这些被覆盖的位置加载AppSettings和ConnectionStrings,但保留当前的配置文件?

1 个答案:

答案 0 :(得分:0)

我建议将配置文件(包括路径)传递给string [] args并在打开配置文件之前读取它。但是,关于安全方面,您应该检查某些语法等。如果路径包含&#34 ;;&#34;或&#34;)&#34;等等......或者你可以通过regexp检查,如果给定的路径具有正确的结构。 无论如何,搜索谷歌(或论坛......谷歌将引导你到此为止;))for string [] args。