如何在运行时将键值对存储在应用程序设置中

本文关键字:应用程序 设置 存储 运行时 键值对 | 更新日期: 2023-09-27 17:47:47

如何在运行时使用应用程序设置api将对象的动态键值对存储在app.config中?

我一直在努力思考,但找不到任何有意义的例子或文档。

我觉得.Net字典类不能用XML序列化以将它们存储在app.config 中

唯一的方法是使用自定义的XML序列化类,还是有其他方法?

如何在运行时将键值对存储在应用程序设置中

您应该能够执行以下操作:

// Open App.Config of executable
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Add an Application Setting with a name Key and a Value stored in variable called Value
config.AppSettings.Settings.Add("Key", Value );
// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);

经过更多的网络搜索,我发现了一篇非常好的(尽管很长)文章,它详细描述了.net配置模型:

解开.NET 2.0配置之谜

我还发现了一些非常有用的东西:

配置部分设计器

添加了一个可视化工作室,用于可视化设计配置部分并生成核心XSD文件。我希望有人觉得这很有用。

一直认为在运行时更改app.config被认为是不好的做法。app.config应用于程序设置和配置;而不是应用程序实际正在修改的动态内容。

建议您为动态对象创建单独的"KeyValue.xml"文件。

根据您的具体需要,您可以尝试System.Collections.ObjectModel.KeyedCollection<TKey、T值>。只有当您可以从项本身派生项的键时,这才有效,但在这种情况下,它可以用于此目的。

它是通用词典吗?如果是:

XML可序列化通用字典