4

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

我一直在努力解决问题,但找不到任何有意义的示例或文档。

我似乎无法在 XML 中序列化 .Net 字典类以将它们存储在 app.config

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

4

5 回答 5

3

你应该能够做这样的事情:

// 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);
于 2008-10-07T15:47:59.550 回答
2

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

揭开 .NET 2.0 配置的奥秘

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

配置部分设计器

一个视觉工作室,用于直观地设计配置部分并生成相应的 XSD 文件。我希望有人觉得这很有用。

于 2008-10-08T09:51:00.113 回答
1

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

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

于 2008-10-07T16:48:43.157 回答
0

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

于 2008-10-07T15:41:38.020 回答
0

它是通用字典吗?如果是这样的话:

XML 可序列化通用字典

于 2008-10-07T15:41:49.860 回答