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

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

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

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

有帮助吗?

解决方案 2

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

揭开.NET 2.0配置之谜

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

配置部分设计师

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

其他提示

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

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

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

建议你创建单独的<!> quot; KeyValue.xml <!> quot;动态对象的文件。

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

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

XML Serializable Generic Dictionary

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top