C# 設定檔讀取與修改

來源:互聯網
上載者:User

設定檔在很多情況下都使用到, 設定檔分為兩種 一種是應用程式的設定檔, 一種是web的設定檔.

兩種設定檔最大的區別是web的設定檔更新之後會即時更新, 應用程式的設定檔不會即時更新.

更新應用程式的設定檔之後需重新整理

ConfigurationManager.RefreshSection("appSettings");// 重新整理命名節,在下次檢索它時將從磁碟重新讀取它。
ConfigurationSettings也存在這個問題, 但是我還不知道怎麼重新整理節點, 呵呵.
舊方法: 各位看官最好使用下面”新方法”

設定檔:

<configuration>
  <appSettings>
    <add key="name" value="我是遠程伺服器"/>
  </appSettings>
</configuration>

背景程式值得讀取:

string s=System.Configuration.ConfigurationSettings.AppSettings["name"];

修改設定檔的值:

 

/// <summary>/// 更新設定檔資訊/// </summary>/// <param name="name">設定檔欄位名稱</param>/// <param name="Xvalue">值</param>private void UpdateConfig(string name,string Xvalue){XmlDocument doc = new XmlDocument();doc.Load(Application.ExecutablePath + ".config");XmlNode node = doc.SelectSingleNode(@"//add[@key='"+name+"']");XmlElement ele = (XmlElement)node;ele.SetAttribute("value", Xvalue);doc.Save(Application.ExecutablePath + ".config");}

向設定檔插入值:

///<summary>  ///向.config檔案的appKey結寫入資訊AppValue   儲存設定  ///</summary>  ///<param name="AppKey">節點名</param>  ///<param name="AppValue">值</param>Private void SetValue(String AppKey,String AppValue){Xmldocument xDoc=new XmlDocument();xDoc.Load(System.Windows.Forms.Application.ExecutablePath+”.config”);XmlNode xNode;XmlElement xElem1;XmlElement xElem2;xNode=xDoc.SelectSingleNode(“//appSettings”);xElem1=(XmlElement)xNode.SelectSingleNode(“//add[@key=’”+AppKey+”’]”);if(xElem1!=null)xElem1.SetAttribute(“value”,AppValue);else{xElem2=xdoc.CreateElement(“add”);xElem2.SetAttribute(“key”,AppKey);xElem2.setAttribute(“value”,AppValue);xNode.AppendChild(xElem2);}xDoc.Save(System.Windows.Forms.Application.ExecutablePath+”.config”);}
新方法:

System.Configuration.ConfigurationSettings.AppSettings["Key"];
但是現在FrameWork2.0已經明確表示此屬性已經過時。並建議改為ConfigurationManager或WebConfigurationManager。並且AppSettings屬性是唯讀,並不支援修改屬性值.

但是要想調用ConfigurationManager必須要先在工程裡添加system.configuration.dll程式集的引用。(在解決方案管理器中右鍵點擊工程名稱,在右鍵菜單中選擇添加引用,.net TablePage下即可找到)添加引用後可以用 String str = ConfigurationManager.AppSettings["Key"]來擷取對應的值了。

更新設定檔:
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//添加

cfa.AppSettings.Settings.Add("key", "Name")

//修改

cfa.AppSettings.Settings["BrowseDir"].Value = "name";

最後調用
cfa.Save();
當前的設定檔更新成功。

ConfigurationManager.RefreshSection("appSettings");// 重新整理命名節,在下次檢索它時將從磁碟重新讀取它。記住應用程式要重新整理節點

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.