[英]Update config file
我在使用C#更新VS2013中的ConfigFile時遇到問題。 我有以下代碼:
Configuration configManager = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection confCollection = configManager.AppSettings.Settings;
confCollection["ID_Uzivatele"].Value = ID_Uzivatele;
configManager.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configManager.AppSettings.SectionInformation.Name);
(ID_Uzivatele是一個字符串變量)
和configFile
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ID_Uzivatele" value="default"/>
</appSettings>
</configuration>
我的問題是(錯誤列表):KomunikacniAplikace.exe中發生了類型為'System.NullReferenceException'的未處理異常
有人知道我在做什么錯嗎?
我建議您查看未設置該設置的錯誤情況:這對我有用:
(假設字符串有一個常量,這樣您就不會出現錯字...)
const string ID_UZIVATELE = "ID_Uzivatele";
主要代碼:
Configuration configManager = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection confCollection = configManager.AppSettings.Settings;
if (confCollection.AllKeys.Contains(ID_UZIVATELE)) {
Console.Out.WriteLine("Contains key, modifying : was " + confCollection["ID_Uzivatele"].Value);
confCollection["ID_Uzivatele"].Value = "foo";
} else {
Console.Out.WriteLine("Doesn't contain key, adding");
confCollection.Add(ID_UZIVATELE, "Boom");
}
configManager.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configManager.AppSettings.SectionInformation.Name);
如果缺少配置文件,則會生成該文件(您可能希望檢查您的App.Config是否確實已復制到輸出文件夾中(這可能是導致錯誤的根本原因),但始終可以針對不良的配置進行保護很有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.