2017-02-22 68 views
1

在控制檯應用程序項目中我試圖將值寫入app.config文件並永久保存,但只能將其保存在內存中。 我試過Write values in app.config file中的所有解決方案,但沒有一個適合我。如何在控制檯應用程序中將值永久寫入app.config文件?

任何想法如何做,使變化永久?

app.config文件:

<appSettings> 
    <add key="test" value="123456" /> 
</appSettings> 

類有兩種方法既節約價值內存:

public static class ConfigurationHelper 
{ 

    public static void SetSetting(string key, string value) 
    { 
     Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     configuration.AppSettings.Settings[key].Value = value; 
     configuration.Save(ConfigurationSaveMode.Modified); 
     ConfigurationManager.RefreshSection("appSettings"); 
    } 


    public static void SetSetting2(string key, string value) 
    { 
     Configuration configuration = ConfigurationManager. 
      OpenExeConfiguration(Assembly.GetExecutingAssembly().Location); 
     configuration.AppSettings.Settings[key].Value = value; 
     configuration.Save(); 
     ConfigurationManager.RefreshSection("appSettings"); 
    } 

} 

簡單的測試,寫出了變化,但在重建項目或開盤的app.config在記事本中不保存更改:

[Test] 
public void FirstTest() 
{ 
    Console.WriteLine("Value before: " + ConfigurationHelper.Get<string>("test")); 
    ConfigurationHelper.SetSetting2("test", "NewValue"); 
    Console.WriteLine("Value after: " + ConfigurationHelper.Get<string>("test")); 
} 
+0

當您重新構建應用程序時,它會將app.config從您的項目複製到您的輸出目錄中,並覆蓋它。要麼不這樣做,要麼將您寫回的更改複製到項目文件中。 –

+0

謝謝,我想我明白了這個問題。任何想法如何將輸出文件中的更改複製回app.config文件? –

回答

2

據我知道,從信息用於在創建程序,但app.config鍵和值是隻讀的,但你不必使用app.config存儲在應用價值,嘗試使用這樣的:

第1步
solution explorer -> Properties -> Settings創造設置文件。
第2步
添加設置要使用
第3步
使用代碼

添加設置的using yourNameSpace.Properties;

讀值:
var name = Settings.Default.Name1;

塞汀的價值設置:
Settings.Default.Name1 = value;

節能設置:
Settings.Default.Save();

希望它可以幫助你。

+0

謝謝Maciej,會試用或考慮放置一個分貝:) –

相關問題