有读有写。
class Program
{
static void Main(string[] args)
{
// string str1 = AppConfig();
//
// SetValue("pwd", "Pass@word");
//String ConString = System.Configuration.ConfigurationSettings.AppSettings["ConnenctionString"];
SaveConfig("ConnenctionString", "server=localhost;initial catalog=mydb; integrated security=sspi");
}
public static string AppConfig()
{
return System.IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "App.config");//此处配置文件在程序目录下
}
public static void SetValue(string AppKey, string AppValue)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(Program.AppConfig());
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(Program.AppConfig());
}
public static void SaveConfig(string ConnenctionString, string conStrValue)
{
XmlDocument doc = new XmlDocument();
//获得配置文件的全路径
string strFileName = AppDomain.CurrentDomain.BaseDirectory.ToString() + "AppConfigTest.exe.config";
doc.Load(strFileName);
//找出名称为“add”的所有元素
XmlNodeList nodes = doc.GetElementsByTagName("add");
for (int i = 0; i < nodes.Count; i++)
{
//获得将当前元素的key属性
XmlAttribute att = nodes[i].Attributes["key"];
//根据元素的第一个属性来判断当前的元素是不是目标元素
if (att.Value == "ConnectionString")
{
//对目标元素中的第二个属性赋值
att = nodes[i].Attributes["value"];
att.Value = conStrValue;
break;
}
}
//保存上面的修改
doc.Save(strFileName);
}
}