winform里的app.config文件,虽然是一个xml,但是,其起作用的节点,通常是以下结构:
节点名:appSettings/add
属性名:①、key ②、value
读取本节点的方式:string strPath = System.Configuration.ConfigurationSettings.AppSettings["key属性的值"].ToString(); //这样,获取到这个add节点的 value 属性的值
在开发Web项目的时候,会有一个配置文件Web.config,用来存放一些全局的变量,如连接数据库用的字符串。相应的,在开发winform程序时,也有一个配置文件,它就是App.config,这个文件的作用与Web.config大致相同,也可以用来存放程序所用的全局变量及Value值。
来看一个app.config文件的例子:
<?
xml version="1.0" encoding="utf-8"
?>
<
configuration
>
<
appSettings
>
<!--
图片存放路径
-->
<
add
key
="ImgPath"
value
="D:\img\"
/>
</
appSettings
>
</
configuration
>
可以看出,app.config和web.config一样,嗯,它也是一个XML文件。那怎么对这个文件中的元素进行读取操作呢?很简单,来看代码:
string
strPath
=
System.Configuration.ConfigurationSettings.AppSettings[
"
ImgPath
"
].ToString();
这样就可以把app.config文件中ImgPath这个元素的Value值读取出来了。那怎么改写元素的值呢?如果你认为像读那样的去写,像这样的代码:
System.Configuration.ConfigurationSettings.AppSettings[
"
ImgPath
"
]
=
@"
E:\img\
"
;
//
这样写是没用的
在对app.config文件的元素Value值进行修改操作时,只能把app.config文件当作一个普通的XML文件来对待,利用System.Xml.XmlDocument类把这个app.config文件读到内存中,并通过System.Xml.XmlNode类找到appSettings节点,通过System.Xml.XmlElement类找到节点下的某个元素,利用SetAttribute方法来修改这个元素的值后,最后再将app.config文件保存到原的目录中,这样,才算完成了对一个元素Value值的修改操作。下面这个方法可完成对app.config文件appSettings节点下任意一个元素进行修改,当然,你也可能修改这个方法,达到修改任意节点,任意元素的Value值。
public
static
void
SetValue(
string
AppKey,
string
AppValue)
{
System.Xml.XmlDocument xDoc
=
new
System.Xml.XmlDocument();
xDoc.Load(System.Windows.Forms.Application.ExecutablePath
+
"
.config
"
);
System.Xml.XmlNode xNode;
System.Xml.XmlElement xElem1;
System.Xml.XmlElement xElem2;
xNode
=
xDoc.SelectSingleNode(
"
//appSettings
"
);
xElem1
=
(System.Xml.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
"
);
}
注意这个方法中if条件else下的语句,当在文件中没有找到给定的元素时,方法会创建这个元素。