//XML读写类 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace MvvmScaffoldFrame48.DLL.ConfigTools { public static class XMLReadWrite { /// /// 序列化对象到XML文件 /// /// /// /// /// public static void SerializeToXml(T data, string filePath) { try { var serializer = new XmlSerializer(typeof(T)); using (var writer = new StreamWriter(filePath)) { serializer.Serialize(writer, data); } } catch (Exception ex) { throw new InvalidOperationException("XML serialization failed", ex); } } /// /// 序列化对象为XML字符串 /// /// 对象类型 /// 要序列化的对象 /// XML字符串 /// public static string SerializeToString(T data) { try { var serializer = new XmlSerializer(typeof(T)); using (var writer = new StringWriter()) { serializer.Serialize(writer, data); return writer.ToString(); } } catch (Exception ex) { throw new InvalidOperationException("XML serialization to string failed", ex); } } /// /// 从XML文件反序列化对象 /// /// /// /// /// public static T DeserializeFromXml(string filePath) { try { var serializer = new XmlSerializer(typeof(T)); using (var reader = new StreamReader(filePath)) { return (T)serializer.Deserialize(reader); } } catch (Exception ex) { throw new InvalidOperationException("XML deserialization failed", ex); } } /// /// 从XML字符串反序列化对象 /// /// 对象类型 /// XML字符串 /// 反序列化的对象 /// public static T DeserializeFromString(string xmlString) { try { var serializer = new XmlSerializer(typeof(T)); using (var reader = new StringReader(xmlString)) { return (T)serializer.Deserialize(reader); } } catch (Exception ex) { throw new InvalidOperationException("XML deserialization from string failed", ex); } } } }