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

时间:2008-10-07 15:31:39

标签: c# .net settings app-config

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

我一直试图解决这个问题,但我找不到任何有意义的示例或文档。

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

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

5 个答案:

答案 0 :(得分:2)

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

// 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);

答案 1 :(得分:2)

经过一些搜索网,我发现了一篇非常好的(虽然很长)文章,该文章在.Net配置模型中进行了描述:

Unraveling the Mysteries of .NET 2.0 Configuration

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

Configuration Section Designer

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

XML Serializable Generic Dictionary