ApplicationSettings 部分和 AppSettings 部分有啥区别? [复制]

Posted

技术标签:

【中文标题】ApplicationSettings 部分和 AppSettings 部分有啥区别? [复制]【英文标题】:What is the difference between the ApplicationSettings section and the AppSettings section? [duplicate]ApplicationSettings 部分和 AppSettings 部分有什么区别? [复制] 【发布时间】:2010-11-06 17:29:18 【问题描述】:

谁能向我解释一下 App.Config 文件中 AppSettings 和 ApplicationSettings 部分之间的区别。为什么有两个不同的部分显然做同样的事情??

【问题讨论】:

您在哪里看到“应用程序设置”?我不认为这是一个有效的配置部分。可以举个例子吗? 对不起,我的意思是应用程序设置,而不是应用程序设置 【参考方案1】:

我相信您的 app.config/web.config 中的 <appsettings/> 集合允许您将设置存储在键值对中,并通过 System.Configuration API 访问,如下所示:

string setting = System.Configuration.ConfigurationManager.AppSettings["settingName"];

设置只能作为字符串值存储和检索。 它们也可以通过 System.Configuration.ConfigurationSettings 访问,但这种方式已被弃用。

配置文件中的<ApplicationSettings/> 集合以强类型方式存储您的设置,并且还允许您以强类型方式访问这些设置。 VS 会在您项目的 Properties 文件夹中的 settings.settings 文件中自动为您生成包装器类。要将设置文件添加到您的项目,请右键单击您的项目,然后单击 Properties,然后打开 Settings 选项卡。然后单击链接以添加新的设置文件。 VS 会自动为你生成一个。就这么简单。

您通常按如下方式访问您的设置:

MyProjectName.Properties.Settings.Default.SettingName

请注意访问这两个集合的方式不同。

第二种(未弃用)存储设置的方式是更好的方式,并且提供了很大的灵活性和强大的功能。虽然这需要一些学习 - 但值得付出努力。

【讨论】:

"上述处理方式已被弃用。" - System.Configuration.ConfigurationSettings.AppSettings 已被弃用,但已被 System.Configuration.ConfigurationManager.AppSettings 取代。 配置部分的使用尚未被弃用。 啊对!感谢您的澄清。 几乎错过了@Joe 的附录。将它添加到原始帖子中,供不阅读所有 cmets 的人使用。【参考方案2】:

http://kevinskorner.net/blog/post/2008/03/27/applicationSettings-vs-appSettings.aspx

应用程序设置为我们提供了更多 控制和最重要的, 智力。

【讨论】:

该链接已失效,但可在 Archive.org 上找到:web.archive.org/web/20100721004740/http://kevinskorner.net/blog/…【参考方案3】:

这与我们都喜欢的向后兼容性有关。 ApplicationSettings 是较新的构造。

现在使用较新的 ConfigurationManager 和 WebConfigurationManager 类来获取您的设置,为此您需要参考 System.configuration 而不是 System.Configuration :)。

在某一时刻,它开始变得有点傻,不是吗。

【讨论】:

以上是关于ApplicationSettings 部分和 AppSettings 部分有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将设置移动到另一个配置文件

VS2010新的web.config配置中如何使用applicationSettings?

为啥不能将窗体的大小绑定到 ApplicationSettings?

将连接字符串放入 applicationSettings 有啥问题吗? [复制]

在 C# 中将 WPF 属性绑定到 ApplicationSettings 的最佳方法?

在 C# 中将 Windows 窗体属性绑定到 ApplicationSettings 的最佳方法?