app.config動態修改及讀取


1.添加應用程序配置文件

右鍵點擊項目,選擇“添加”→“添加新建項”→“添加應用程序配置文件”將其添加到項目中。

2.設置配置文件

<?xmlversion="1.0"encoding="utf-8" ?>

<configuration>

<connectionStrings>
        <add name="connStr" connectionString="This is ConnectionString"/>
    </connectionStrings>
    <appSettings>
        <add key="key1" value="This is Key"/>
    </appSettings>

</configuration>

3.讀取配置文件(項目中必須添加system.configuration引用:右擊項目-添加引用-選擇.net中system.configuration)

public string ReadConfig()

{

ConfigurationManager.RefreshSection("connectionStrings");  //讀取之前強制刷新節點清除緩存

ConfigurationManager.RefreshSection("appSettings");          //讀取之前強制刷新節點清除緩存

string connStr= ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;

string keyVal=ConfigurationManager.AppSettings["key1"].ToString();

return  string.Format("connStr:{0} keyVal:{1}",connStr,keyVal);

}

4.動態設置配置文件

public void SettingConfig(string name,string value)

{

            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);//當前應用程序的配置文件
            ConnectionStringSettings conn = config.ConnectionStrings.ConnectionStrings["connStr"];
            if (conn!=null)
            {
                config.ConnectionStrings.ConnectionStrings.Remove("connStr"); //移除節點
            }
          config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(name,value)); //添加新的節點

          AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");
            //刪除name,然后添加新值
          appSettings.Settings.Remove("key1");
           appSettings.Settings.Add(name, value);
           config.Save(); //保存配置文件

}

其它獲取配置文件方法

1.調用到xxx.vshost.exe.config

 string ass = Assembly.GetEntryAssembly().Location;
  Configuration config = ConfigurationManager.OpenExeConfiguration(ass);

2.隨應用程序域決定使用哪種配置文件

 string path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

Configuration config = ConfigurationManager.OpenExeConfiguration(path);

3.同上

 Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM