2008-10-07 81 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」文件。

相關問題