用C#写入app.config

转自http://hi.baidu.com/s_qiu/blog/item/3f468d13ddce92856438db69.html

今天写了个 windows的小程序,把我郁闷了够戗.太久没有接触了。就把一点儿小玩意儿写下来,以方便大家以后查阅.

读取app.config就不赘述了,主要说说写入app.config.

据说微软不太建议我们动态写入app.config的,但是不可避免的有人因为业务或其他需要就非要写入app.config.

其实app.config就是个xml文件,找到位置,读出来,改了,然后保存回去,就行了。

重要一点:app.config运行时就不在原来的目录下了,名称也变了。所以在写入时一定要写运行时那个文件.

代码如下:

/// <summary>

/// 设置app.config中的某个key的value.

/// </summary>

/// <param name="AppKey">key</param>

/// <param name="AppValue">value</param>

public void SetValue(string AppKey, string AppValue)

{

XmlDocument xDoc = new XmlDocument();

//此处配置文件在程序目录下

xDoc.Load(Application.StartupPath + "\\MailSender.exe.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(Application.StartupPath + "\\MailSender.exe.config");

}

其实挺简单的,大家用时只需要把那个MailSender.exe.config改成自己的就行了(ProjectName.exe.config),编译后去debug里找一般都能找到.哈哈