2017-02-22 22 views
1

コンソールアプリケーションプロジェクトでは、app.configファイルに値を書き込んで永久に保存しようとしていますが、メモリに保存することはできません。 私はWrite values in app.config fileですべてのソリューションを試しましたが、私にとってはうまくいきません。app.configファイルの値をコンソールアプリケーションに永続的に書き込む方法は?

変更を永続的に行うにはどうすればよいですか?

app.configファイル:

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

クラス専用メモリに値を保存する二つの方法を持つ:プロジェクトまたは開口部のapp.configをを再構築すると、変更を書き出しますが

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"); 
    } 

} 

簡単なテストメモ帳で変更内容は保存されません。

[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;

読み取り値を追加使用する設定を追加する手順:の値をSETING
var name = Settings.Default.Name1;

設定:
設定を保存Settings.Default.Name1 = value;


Settings.Default.Save();

は、それはあなたを助け願っています。

+0

Maciejありがとう、それを試してみるか、代わりにdbを置くことを検討します:) –

関連する問題