我对.Net v2中dll,ASP.net网站等的.Net配置的各种配置选项感到困惑 - 尤其是在考虑配置文件在链接的UI /最终用户端的影响时.
因此,例如,我使用的一些应用程序使用我们访问的设置:
string blah = AppLib.Properties.Settings.Default.TemplatePath;
现在,这个选项似乎很酷,因为成员是强力键入的,我将无法输入Visual Studio 2005 IDE中不存在的属性名称.我们在命令行可执行项目的App.Config中得到这样的行:
(如果我们没有第二个设置,那么将一个调试dll发布到live box的人可能已经嵌入了调试连接字符串 - eek)
我们也有像这样访问的设置:
string blah = System.Configuration.ConfigurationManager.AppSettings["TemplatePath_PDF"];
现在,这些看起来很酷,因为我们可以从dll代码或exe/aspx代码访问设置,我们在Web或App.config中需要的只是:
但是,当然可能没有在配置文件中设置值,或者字符串名称可能输入错误,因此我们遇到了一组不同的问题.
所以......如果我的理解是正确的,那么前面的方法会给出强大的输入,但是在dll和其他项目之间分配不好的值.后者提供更好的共享,但键入较弱.
我觉得我必须遗漏一些东西.目前,我甚至不关心应用程序能够将值写回配置文件,加密或类似的东西.此外,我已经决定存储任何非连接字符串的最佳方法是在数据库中...然后我要做的另一件事就是在数据库连接问题时将电话号码存储给文本人员,所以他们必须存放在DB外面!