你說得對,這樣的設置不應該存儲在app.config文件中。它只是增加了混亂。在這種情況下,最好創建另一個配置文件,正如您在票中提到的那樣。
您正打算將此配置文件構造爲XML文檔。這是一個好主意。這也意味着你的配置數據是結構化的。太好了。
我建議你去JSON。這可以讓你在運行時將配置設置加載到你的應用程序中,只需很少的幾行代碼。試試NewtonSoft.JSON(又名JSON.Net)。
您可以按照以下步驟來快速添加和使用的配置設置:
- 使用NewtonSoft.JSON NuGet包管理器
- 添加對該庫引用到您的項目和cs文件(使用NewtonSoft安裝。 Json)
- 爲您的配置設置創建一個C#類。對於重複塊,您可以使用
List<string>
或任何其他相關數據類型,即使是int
- 因此您不必進行任何類型轉換。
- 讀取JSON文件轉換成字符串對象
- 使用
JsonConvert.DeserializeObject()
爲:
MyConfigSettings settings = JsonConvert.DeserializeObject<MyConfigSettings>(jsonString);
這裏MyConfigSettings
是配置設置類。相應的成員必須聲明爲public
屬性,並定義了正確的get; set;
屬性。
這會將所有配置設置加載到settings
對象。最好的部分是任何缺少的配置值都會自動跳過,所以你不必有任何複雜的解析算法。
要寫入配置值到一個JSON文件,你可以在settings
對象填充值,並使用它們序列:
// Indented so that it looks readable when the config file is opened in editor like Notepad
string data = JsonConvert.SerializeObject<MyConfigSettings>(settings, Formatting.Indented);
// Now just store string object data to the config file
注:這將需要淨4.0+
快速入門在this example中給出。
我覺得這是不是重複的答案,這個問題都描述一個將如何存儲WPF設置和/或文件的位置。我期待爲此存儲結構化設置和最佳做法。 –
「最佳實踐」是「您對此有何看法?」的同義詞。這是正確的主題(因爲斟酌答案會造成麻煩)。 –