作为.Net世界的新手,我对在WPF应用程序中存储应用程序设置的位置和方式感到非常困惑。
我一直看到对Properties.Settings.Default
的引用,但是这在我的WPF应用程序中无法解决,我无法找到这些实际的类,以便找到要引入的程序集。这是一种仅限WinForms的技术吗?
我还发现ConfigurationSettings
似乎已被弃用,ConfigurationManager
,AppSettings
,ApplicationSettings
和Settings
!我相信很多这些工作在一起,但我很难找出属于哪些,什么是旧的,或与WPF无关。
有人可以拼出新手的基本选项吗?
答案 0 :(得分:3)
感到惊讶的是,没有人能够回答这个问题,所以我做了一些挖掘工作,并在此处记录我的发现,以防其他人像我一样困惑:
ConfigurationSettings
已经死了。 (< = .Net 1.1)。它用于通过AppSettings
成员公开一组名称/值对。
ConfigurationManager
是替代品(> .Net 2)。它位于System.Configuration.dll
,是所有新配置的基础。它是一个静态类,因此可以在任何地方访问。它还公开了一组名为AppSettings
的名称/值对,大概是为了向后兼容。
AppSettings
不是类型安全的,它实际上是字符串对。
ApplicationSettings
似乎引用ApplicationSettingsBase
,这是一个用作较新样式类型安全设置基础的类。子类包含映射到设置的成员。 ConfigurationManager
仍然用于管理/序列化这些内容。
Settings
是上面的工具生成的静态子类,它是通过向项目添加“设置文件”生成的,它允许设计时间编辑设置。它会生成到项目的Properties命名空间中,因此可以通过应用中的任何位置的 Properties.Settings
进行访问。尽管在整个文档中都提到了WinForms,但它似乎也可以从WPF中使用。
如果您不想使用设置文件,也可以使用自己的自定义类直接使用ConfigurationManager。有关使用概述的一些综合链接是:
Unraveling the Mysteries of .NET 2.0 Configuration
Decoding the Mysteries of .NET 2.0 Configuration
Cracking the Mysteries of .NET 2.0 Configuration
所有这些设置似乎都连续到app.config文件,虽然我已经看到了对单独的Applicationsettings文件的引用,所以我可能错了。
答案 1 :(得分:0)
如果没有很多要保存的设置,为什么不使用Windows注册表? File System and the Registry (C# Programming Guide)
关于ConfigurationManager
等没有什么神奇之处,您可以使用自己的设置对象并将其序列化/反序列化为XML。
请参阅Application class以了解应用程序数据路径。
至于Properties.Settings.Default
未在您的应用中解析,Solution Explorer
- >你的项目 - > Add
- > New Item
- > Settings File
。这将自动生成Properties.Settings
类,允许您在设计时编辑应用程序设置。然后,您就可以致电Properties.Settings.Default.Save()