zoukankan      html  css  js  c++  java
  • 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;
            }
    
    
    
    
    
  • 相关阅读:
    (数据科学学习手札09)系统聚类算法Python与R的比较
    写完代码就去吃饺子|The 10th Henan Polytechnic University Programming Contest
    《四月物语》
    PAT(甲级)2017年春季考试
    PAT(甲级)2017年秋季考试
    2019年全国高校计算机能力挑战赛 C语言程序设计决赛
    CF#603 Div2
    redhat7 上安装dummynet
    cassandra 如何写数据以及放置副本
    Eclipse中设置VM参数
  • 原文地址:https://www.cnblogs.com/Wolfmanlq/p/4183427.html
Copyright © 2011-2022 走看看