作为。net世界的新手,我对在哪里以及如何在WPF应用程序中存储应用程序设置感到非常困惑。
我一直看到对Properties.Settings.Default
的引用,但这并没有在我的WPF应用程序中解决,而且我找不到这些实际类是什么,以便找到要拉入的程序集。这是WinForms独有的技术吗?
我还发现了ConfigurationSettings
,它似乎已被弃用,以及ConfigurationManager
, AppSettings
, ApplicationSettings
和Settings
!我确信它们中的许多都可以一起工作,但我真的很难区分哪些属于一起,哪些是旧的,或者与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()