web-dev-qa-db-ja.com

実行時にApp.exe.configキーを変更する方法は?

私のapp.configにはこのセクションがあります

<appSettings>
    <add key ="UserId" value ="myUserId"/>
     // several other <add key>s
</appSettings>

通常、userId = ConfigurationManager.AppSettings["UserId"]を使用して値にアクセスします

ConfigurationManager.AppSettings["UserId"]=somethingを使用して値を変更すると、値はファイルに保存されず、次回アプリケーションをロードするときに古い値が使用されます。

実行時にapp.configキーの値を変更するにはどうすればよいですか?

25
Louis Rhys
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

config.AppSettings.Settings["UserId"].Value = "myUserId";     
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManagerについて読むことができます こちら

57
Rafal Spacjer

サイドノートに。

App.configで何かを実行時に変更する必要がある場合は、その変数を保持するより良い場所があります。

App.configは定数に使用されます。最悪の場合、1回限りの初期化が行われます。

2
Mulki

値を変更した後、おそらくuはAppconfigドキュメントを保存しません。

// update    
  settings[-keyname-].Value = "newkeyvalue"; 
//save the file 
  config.Save(ConfigurationSaveMode.Modified);   
//relaod the section you modified 
  ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name); 
2
PawanS

app.configファイルの変更

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Configuration;
using System.Xml;

public class AppConfigFileSettings
{


    public static void UpdateAppSettings(string KeyName, string KeyValue)
    {
        XmlDocument XmlDoc = new XmlDocument();

        XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);

        foreach (XmlElement xElement in XmlDoc.DocumentElement) {
            if (xElement.Name == "appSettings") {

                foreach (XmlNode xNode in xElement.ChildNodes) {
                    if (xNode.Attributes[0].Value == KeyName) {
                        xNode.Attributes[1].Value = KeyValue;
                    }
                }
            }
        }
        XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    }
}
0
Pranay Rana