| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Runtime.Serialization.Formatters.Binary;using System.Xml.Serialization;using System.Reflection;using System.Runtime.InteropServices;namespace Ips.Library.DxpLib{    public static class ToolSerialization    {        //public static void ToBinaryFile(string fileName, object obj)        //{        //    FileStream stream = File.Create(fileName);        //    BinaryFormatter binFmt = new BinaryFormatter();        //    binFmt.Serialize(stream, obj);        //    stream.Close();        //}        //public static object FromBinaryFile(string fileName, Type type)        //{        //    FileStream stream = File.OpenRead(fileName);        //    BinaryFormatter binFmt = new BinaryFormatter();        //    object obj = binFmt.Deserialize(stream);        //    stream.Close();        //    return obj;        //}        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            {                if (reader != null)                    reader.Close();                throw;            }        }        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<T>(string xmlString)        {            var x = new XmlSerializer(typeof(T));            var r = new StringReader(xmlString);            return (T)x.Deserialize(r);        }    }}
 |