c#读取和修改app.config的值(转载)

时间:2022-01-05 11:24:36

在WinForm中,可以通过添加配置文件(如App.config)来为程序简易地设置一些参数,但为了自己指定配置文件的位置,就不用VS添加了,写两个方法读取和修改指定文件。
public class AppSettings
    {
        public static string AppConfig()
        {
            return System.IO.Path.Combine(Application.StartupPath, "App.config");//此处配置文件在程序目录下
        }

        public static string GetValue(string appKey)
        {
            XmlDocument xDoc = new XmlDocument();
            try
            {
                xDoc.Load(AppSettings.AppConfig());
                XmlNode xNode;
                XmlElement xElem;
                xNode = xDoc.SelectSingleNode("//appSettings");    //补充,需要在你的app.config 文件中增加一下,<appSetting> </appSetting>
                xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
                if (xElem != null)
                    return xElem.GetAttribute("value");
                else
                    return "";
            }
            catch (Exception)
            {
                return "";
            }
        }

        public static void SetValue(string AppKey, string AppValue)
        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(AppSettings.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(AppSettings.AppConfig());
        }
   

       /// <summary>
       ///
       /// </summary>
       /// <returns></returns>
       public static XmlNode GetAddressValues()
       {
           XmlDocument xDoc = new XmlDocument();
           xDoc.Load(AppConfig());
           XmlNode xNode;
           xNode = xDoc.SelectSingleNode("//MainForm-comboBoxWeb");
           return xNode;
       }

       public static void SetAddressValue(string AppValue)
       {
           XmlDocument xDoc = new XmlDocument();
           xDoc.Load(AppConfig());
           XmlNode element;
           element = xDoc.SelectSingleNode("//MainForm-comboBoxWeb");
           XmlNode node = xDoc.CreateNode(XmlNodeType.Element, "Item", "");
      node.InnerText = AppValue;
      element.AppendChild(node);
           xDoc.Save(AppConfig());

  }

}