配置文件在很多情況下都使用到, 配置文件分為兩種 一種是應用程序的配置文件, 一種是web的配置文件.
兩種配置文件最大的區別是web的配置文件更新之後會實時更新, 應用程序的配置文件不會實時更新.
更新應用程序的配置文件之後需刷新
ConfigurationManager.RefreshSection("appSettings");// 刷新命名節,在下次檢索它時將從磁盤重新讀取它。
ConfigurationSettings也存在這個問題, 但是我還不知道怎麼刷新節點, 呵呵.
配置文件:
<configuration>
<appSettings>
</appSettings>
</configuration>後台程序值得讀取:
string s=System.Configuration.ConfigurationSettings.AppSettings["name"];
修改配置文件的值:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14
/// <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"
);
}
向配置文件插入值:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25///<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必須要先在工程裡添加程序集的引用。(在解決方案管理器中右鍵點擊工程名稱,在右鍵菜單中選擇添加引用,.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();
當前的配置文件更新成功。