public class XmlReadWrite { static string filePath = Environment.CurrentDirectory + "\\config.xml"; private static XmlElement Init(ref XmlDocument doc) { XmlElement root; if (File.Exists(filePath)) { // 参数存在,加载XML doc.Load(filePath); // 获得根节点 root = doc.DocumentElement; } else { // 参数不存在,创建xml文档第一行 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); doc.AppendChild(dec); // 创建根节点 root = doc.CreateElement("root"); doc.AppendChild(root); } return root; } /// <summary> /// 系统配置文件读操作 /// </summary> /// <param name="systemConfig"></param> /// <param name="msg"></param> public static string ReadConfig<T>(T t) { XmlDocument doc = new XmlDocument(); XmlElement root = Init(ref doc); string msg = string.Empty; try { PropertyInfo[] PropertyList = t.GetType().GetProperties(); foreach (PropertyInfo item in PropertyList) { XmlNode xn = root.SelectSingleNode(item.Name); if (xn != null) { if (xn.InnerText.Trim() == "") msg = "节点" + item.Name + "没有值!"; else item.SetValue(t, xn.InnerText.Trim()); } else msg = "节点" + item.Name + "不存在!"; } return msg; } catch (Exception ex) { return ex.Message; } } /// <summary> /// 系统配置文件写操作 /// </summary> /// <param name="systemConfig"></param> /// <param name="msg"></param> /// <returns></returns> public static string WriteConfig<T>(T t) { XmlDocument doc = new XmlDocument(); XmlElement root = Init(ref doc); string msg = string.Empty; try { PropertyInfo[] PropertyList = t.GetType().GetProperties(); foreach (PropertyInfo item in PropertyList) { XmlNode xn = root.SelectSingleNode(item.Name); if (xn != null) xn.InnerText = item.GetValue(t, null).ToString(); else { xn = doc.CreateElement(item.Name); xn.InnerText = item.GetValue(t, null).ToString(); root.AppendChild(xn); } } doc.Save(filePath); return msg; } catch (Exception ex) { return ex.Message; } } }