using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; namespace Cyberpipe { class XmlTools { public static void SerializeToXml<T>(string filePath, T obj) { try { using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath)) { XmlSerializer xs = new XmlSerializer(typeof(T)); xs.Serialize(writer, obj); } } catch (Exception ex) { throw ex; } } /// <summary> /// 从某一XML文件反序列化到某一类型 /// </summary> /// <param name="filePath">待反序列化的XML文件名称</param> /// <param name="type">反序列化出的</param> /// <returns></returns> public static T DeserializeFromXml<T>(string filePath) { try { if (!System.IO.File.Exists(filePath)) throw new ArgumentNullException(filePath + " not Exists"); using (System.IO.StreamReader reader = new System.IO.StreamReader(filePath)) { XmlSerializer xs = new XmlSerializer(typeof(T)); T ret = (T)xs.Deserialize(reader); return ret; } } catch (Exception ex) { throw ex; // return default(T); } } } }