App.config 弃用 C#?

App.config deprecated C#?

我正在尝试了解应用程序设置/AppSettings。

我的理解是 AppSettings(在 app.config 文件中)是通过 ConfigurationManager.AppSettings 访问的,这被认为是已弃用的功能。

我了解 应用程序设置 是通过 Properties.Settings.Default 访问的,通常创建为 .settings 文件(在 Visual Studio 中,这可以在项目属性中完成).

如果这是正确的(请确认),我的问题是为什么Visual Studio中的所有项目都会自动创建一个App.config文件?我可以/应该删除这个文件并创建一个 Settings.settings 文件吗?我应该同时使用两者吗? (为什么?)我可以使用 Properties.Settings 访问 app.config 文件吗?如果可以,怎么做?

此外,如果 Properties.Settings.Default 访问 "default" 设置文件,您将如何/为什么访问默认文件以外的文件?

编辑:AppSettings 与应用程序设置线程没有回答这个问题,因为我的具体问题是为什么我需要一个 App.Config 文件。

ApplicationSettings 比 AppSettings 更受欢迎,因为它们是强类型的,但有时(例如在 Azure 中)AppSettings 更受欢迎,因为它们可以从 Azure 控制面板逐个实例地设置。

也就是说,让我们看看你问题的另一部分,与 Settings.Default 和 App.Config 有关。

我不会从每个项目中删除 App.Config,因为它会在您更新设置时自动更新。设置文件在代码中具有默认值,但 App.Config 文件可以在运行时覆盖这些值。能够将相关部分复制到将使用库的新应用程序(到它们的 app.config 或 web.config 中)真是太好了。

您的项目中唯一被执行的 app.config 文件是启动项目,app.config(或可能是 web.config)中的值是使用的值在运行时。

希望这能消除一些关于文件关系的困惑。

配置文件的示例结构:

ProjectA
- ProjectA.Settings
- App.Config // VS syncs with Settings file
ProjectB
- ProjectB.Settings
- App.Config // VS syncs with Settings file
ProjectC (Startup Project
- ProjectC.Settings
- App.Config
    // Can contain override settings for ProjectA.Settings and ProjectB.Settings