对.net应用程序设置框架感到困惑



作为。net世界的新手,我对在哪里以及如何在WPF应用程序中存储应用程序设置感到非常困惑。

我一直看到对Properties.Settings.Default的引用,但这并没有在我的WPF应用程序中解决,而且我找不到这些实际类是什么,以便找到要拉入的程序集。这是WinForms独有的技术吗?

我还发现了ConfigurationSettings,它似乎已被弃用,以及ConfigurationManager, AppSettings, ApplicationSettingsSettings !我确信它们中的许多都可以一起工作,但我真的很难区分哪些属于一起,哪些是旧的,或者与WPF无关。

谁能给新手讲一下基本选项吗?

很惊讶没有人能回答这个问题,所以我做了更多的挖掘,并将我的发现记录在这里,以防其他人和我一样困惑:

  • ConfigurationSettings 已死。(<= . net 1.1)。它用来通过AppSettings成员公开一组名称/值对

  • ConfigurationManager 是替代品(> . net 2)。它存在于System.Configuration.dll中,并且是所有新配置的基础。它是一个静态类,因此可以在任何地方访问。它还公开了一组名为AppSettings的名称/值对,大概是为了向后兼容。

  • AppSettings 不是类型安全的,它实际上是字符串对。

  • ApplicationSettings 似乎指的是ApplicationSettingsBase,这是一个用作新样式类型安全设置基础的类。子类包含映射到设置的成员。ConfigurationManager仍然用于管理/序列化这些

  • Settings 是一个生成静态子类的工具,它是通过添加一个"设置文件"到你的项目中生成的,它允许在设计时编辑设置。它被生成到你的项目的属性命名空间,因此可以通过 Properties.Settings 在你的应用程序的任何地方访问。尽管在整个文档中提到了WinForms,它似乎也可以从WPF中使用。

如果你不想使用设置文件,ConfigurationManager也可以直接使用你自己的自定义类。

解开。net 2.0配置的奥秘

破解。net 2.0配置的奥秘

破解。net 2.0配置的奥秘

所有这些设置似乎都被序列化到app.config文件,尽管我已经看到了对单独的Applicationsettings文件的引用,所以我可能错了。

如果没有很多设置要保存,为什么不使用Windows注册表呢?文件系统和注册表(c#编程指南)

没有什么神奇的ConfigurationManager等,你可以使用自己的设置对象和序列化/反序列化,从XML。

参考Application类来了解应用程序的数据路径。

对于Properties.Settings.Default在您的应用程序中不解决,Solution Explorer ->您的项目-> Add -> New Item -> Settings File。这将自动生成Properties.Settings类,允许您在设计时编辑应用程序设置。然后你就可以调用Properties.Settings.Default.Save()

最新更新