我正在努力解决如何保留已读取但也由我的C#应用程序更新的首选项/设置/配置。我的配置可以是
字符串或其他值类型的集合。
类对象实例,表示一组主要是值类型。
- >这些设置可以在不同的,有时不相关的类中访问。
我正在考虑您认为最佳做法,给出以下要点:
自编键/值存储。在内部,键/值存储在哈希表中,哈希表被序列化/反序列化以保持持久性。
实体框架:我可以访问MS实体框架并运行MySQL服务器实例。
文本文件/ XML文件
任何其他/更好的想法?
排除:
我不想在Settings.settings,App.config等中存储任何设置
我不想使用注册表
我不想将设置存储在任何模糊的漫游目录结构或其他隐藏目录中。设置应存储在专用数据库/表中,或存储在应用程序可执行文件夹或子文件夹中。
问题:
答案 0 :(得分:0)
您可以将设置存储在WMI命名空间中。我们在那里存储了一个特定于产品的设置和配置。此外,虽然您已排除App.config,但通常会在其中存储特定于应用程序的设置。
答案 1 :(得分:-1)
我建议在这种情况下使用XML。
易于阅读和阅读
人性化,易于手动打开和编辑
使用LINQ to XML,您可以查询特定数据并将该数据转换为强类型对象
广泛使用和理解,特别是对于配置文件
灵活的结构
这些只是我想到的一些事情。以下是查询tcp类型的所有协议的文件的示例代码。
XElement settings = XElement.Load("settings.xml");
IEnumerable<XElement> tcpSettings = settings.Elements("protocol").Where(o => o.Attribute("name").Value == "tcp")
// make some changes to the settings
settings.Save("settings.xml");
修改强>