写的不错,打赏一下

SerializationUtility

 public static T LoadFromXml<T>(string fileName)
        {
            FileStream fs = null;
            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                return (T)serializer.Deserialize(fs);
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }

        public static void SaveToXml<T>(string fileName, T data)
        {
            FileStream fs = null;
            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
                serializer.Serialize(fs, data);
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }

        public static string XmlSerialize<T>(T serialObject)
        {
            StringBuilder sb = new StringBuilder();
            XmlSerializer ser = new XmlSerializer(typeof(T));
            using (TextWriter writer = new StringWriter(sb))
            {
                ser.Serialize(writer, serialObject);
                return writer.ToString();
            }
        }

        public static string XmlSerialize(object serialObject)
        {
            StringBuilder sb = new StringBuilder(5000);
            XmlSerializer ser = new XmlSerializer(serialObject.GetType());
            using (TextWriter writer = new StringWriter(sb))
            {
                ser.Serialize(writer, serialObject);
                return writer.ToString();
            }
        }

        public static T XmlDeserialize<T>(string str)
        {
            XmlSerializer mySerializer = new XmlSerializer(typeof(T));
            using (TextReader reader = new StringReader(str))
            {
                return (T)mySerializer.Deserialize(reader);
            }
        }

        public static object XmlDeserialize(string str, Type type)
        {
            XmlSerializer mySerializer = new XmlSerializer(type);
            using (TextReader reader = new StringReader(str))
            {
                return mySerializer.Deserialize(reader);
            }
        }

        public static string BinarySerialize<T>(T serialObject, Encoding encoding)
        {
            string result = String.Empty;

            using (MemoryStream ms = new MemoryStream())
            {
                try
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(ms, serialObject);
                    ms.Position = 0;
                    result = encoding.GetString(ms.ToArray());
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return result;
        }

        public static string BinarySerialize<T>(T serialObject)
        {
            return BinarySerialize<T>(serialObject, Encoding.Default);
        }

        public static string BinarySerialize(object serialObject, Encoding encoding)
        {
            string result = String.Empty;

            using (MemoryStream ms = new MemoryStream())
            {
                try
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(ms, serialObject);
                    ms.Position = 0;
                    result = encoding.GetString(ms.ToArray());
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return result;
        }

        public static string BinarySerialize(object serialObject)
        {
            return BinarySerialize(serialObject, Encoding.Default);
        }

        public static T BinaryDeserialize<T>(string str, Encoding encoding)
        {
            T result = default(T);
            using (MemoryStream ms = new MemoryStream())
            {
                try
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    byte[] bytes = encoding.GetBytes(str);
                    ms.Write(bytes, 0, bytes.Length);
                    ms.Position = 0;
                    result = (T)formatter.Deserialize(ms);

                }
                catch (Exception)
                {
                    throw;
                }
            }
            return result;
        }

        public static T BinaryDeserialize<T>(string str)
        {
            return BinaryDeserialize<T>(str, Encoding.Default);
        }

        public static object BinaryDeserialize(string str)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                BinaryFormatter formatter = new BinaryFormatter();
                byte[] bytes = Encoding.Default.GetBytes(str);
                ms.Write(bytes, 0, bytes.Length);
                ms.Position = 0;
                return formatter.Deserialize(ms);
            }
        }
    }

public static string SerializeToXml(object value)
        {
            if (value == null)
                return "";
            string result = string.Empty;
            if (value is string)
            {
                return value.ToString();
            }

            try
            {
                StringBuilder sb = new StringBuilder(1000);
                XmlSerializer ser = new XmlSerializer(value.GetType());
                using (TextWriter writer = new StringWriter(sb))
                {
                    ser.Serialize(writer, value);
                    result = writer.ToString();
                }
            }
            catch
            {
            }

            return result;
        }

 


 

posted @ 2014-12-24 21:49  不负春光,努力生长  阅读(307)  评论(0编辑  收藏  举报