好吧我正在尝试学习如何实现应用程序和用户设置的所有不同选项,这对我来说非常困惑。
使用settings.settings设计器创建<applicationSettings>
部分和使用ConfigurationManager.AppSettings属性,根据文档创建<appSettings>
部分有什么区别?
使用settings.settings设计器进行应用/用户设置有哪些优点/缺点?
如果我假设System.Configuration命名空间中的类(特别是System.Configuration.Configuration类)主要用于创建自定义节,我是否正确?
System.Configuration命名空间中的任何内容都可以用于创建或读取<applicationSettings>
部分而不使用settings.settings设计器吗?这只是一个自定义部分吗?
正如你所看到的,我很困惑......我希望自那以后我的问题都能解决。请告诉我你所知道的内容,我将继续阅读这篇文章,试图理解。我的问题不是我无法完成我需要完成的工作(我可以使用settings.settings做我需要的事情)....问题实际上是理解这个烂摊子并且知道我所有的选择。
提前谢谢。
更新:
微软在线文档在这个主题上很糟糕(基本上不存在)。我终于找到了
http://www.codeproject.com/Articles/19675/Cracking-the-Mysteries-of-NET-2-0-Configuration
这很好地解释了这一切。自从我意识到配置文件合并之后,它做了更多!
答案 0 :(得分:3)
settings.settings和.config(app.config,web.config或其他)基本上都做同样的事情 - 也就是说,它们将值存储在XML文件中,该文件可以跨会话保存(settings.settings还在Settings.Designer。*文件中创建了一个公共属性,因此VS设计者可以从中读取它。
* .config文件是较旧的处理方式,而settings.setttings是执行操作的“较新”方式。使用settings.settings,您还可以使用便捷的界面来添加对象(即直接从Visual Studio,而不是手动编辑XML)。
此外,使用settings.settings,您将获得用户范围和应用程序范围。用户范围在运行时是可读/写的,而我相信应用程序范围在运行时是只读的。
System.Configuration命名空间用于读取和写入*配置文件。
处理* .config文件的一个好方法是使用Rick Strahl的configuration manager tool。它创建了一个很好的面向对象的整个* .config文件视图,允许对条目进行eacy加密等。
答案 1 :(得分:1)
您正在看到的Settings.Settings内容是您要用于特定于用户的设置的内容。设计器用于设置这些设置的默认值。这些默认值存储在app.config文件中,该文件是保留应用程序设置/配置的位置。即:用户设置默认值本身是应用程序设置。
这有帮助吗? ;)