using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml.Serialization; namespace Ips.Library.Basic { public static class XmlUtil { public static void ToXmlFile(string fileName, object obj) { StreamWriter writer = null; try { XmlSerializer serializer = new XmlSerializer(obj.GetType()); writer = new StreamWriter(fileName, false, Encoding.UTF8); serializer.Serialize(writer, obj); writer.Close(); } catch { if (writer != null) writer.Close(); throw; } } public static string ToXmlString(object obj) { var xmlSerializer = new XmlSerializer(obj.GetType()); using (var stringWriter = new StringWriter()) { xmlSerializer.Serialize(stringWriter, obj); using (var streamReader = new StringReader(stringWriter.GetStringBuilder().ToString())) { return streamReader.ReadToEnd(); } } } public static object FromXmlFile(string fileName, Type type) { StreamReader reader = null; try { XmlSerializer serializer = new XmlSerializer(type); reader = new StreamReader(fileName); object obj = serializer.Deserialize(reader); reader.Close(); return obj; } catch (Exception) { if (reader != null) reader.Close(); return null; } } public static object FromXmlString(string xmlString, Type type) { var x = new XmlSerializer(type); var r = new StringReader(xmlString); return x.Deserialize(r); } public static T FromXmlString(string xmlString) { var x = new XmlSerializer(typeof(T)); var r = new StringReader(xmlString); return (T)x.Deserialize(r); } } }