2008-10-07 77 views
4

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

我一直在试图让我的头,我找不到任何有意义的示例或文档。

我看来,净字典类不能在XML序列化将它们存储在app.config中

是通过使用自定义XML序列化的类来做到这一点的唯一方法,还是有什么别的办法吗?

+0

似乎你已经回答了你自己的问题。 :) – Craig 2008-10-07 15:40:08

回答

2

一些搜索网后,我发现这部门介绍.NET配置模型很好的(尽管很长)文章:

Unraveling the Mysteries of .NET 2.0 Configuration

我也发现了一些非常有用的:

Configuration Section Designer

一个Visual Studio中添加用于在视觉设计配置部分和产生coresponging XSD文件。我希望有人认为这很有用。

+0

谢谢,我知道我以前见过这个,但不记得如何去做。谷歌搜索“配置文件C#中的键值对”让我在这里。干杯:)。 – fuzzyanalysis 2012-11-27 22:25:33

0

根据你需要什么,你可以尝试System.Collections.ObjectModel.KeyedCollection < TKey,TValue >。这只适用于如果你可以从物品本身派生物品的钥匙,但在这种情况下,这可以用于此目的。

0

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

XML Serializable Generic Dictionary

+0

scalvert,我想在字典中存储任何xml可序列化的对象,而不仅仅是相同类型的项目。基本上,字典应该像HashTable一样是非泛型的。 – 2008-10-07 15:46:42

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

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

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

相关问题