zoukankan      html  css  js  c++  java
  • 序列化和反序列化

    序列化是将类型转化为二进制类型,可以保存到文件,或者用于传输

    反序列化是将二进制类型转化为文本等类型

    这个是对象的序列化

       #region 对象的序列化与反序列化(字节)
            /// <summary>
            /// 这个是序列化
            /// </summary>
            /// <param name="data"></param>
            /// <returns></returns>
            public static byte[] Serialize(object data)
            {
                BinaryFormatter formatter = new BinaryFormatter();
                MemoryStream streamMemory = new MemoryStream();
                formatter.Serialize(streamMemory, data);
                byte[] binaryData = streamMemory.GetBuffer();
                streamMemory.Close();
                return binaryData;
            }
    
            /// <summary>
            /// 这个是反序列化
            /// </summary>
            /// <param name="binaryData"></param>
            /// <returns></returns>
            public static object Deserialize(byte[] binaryData)
            {
                BinaryFormatter formatter = new BinaryFormatter();
                MemoryStream streamMemory = new MemoryStream(binaryData);
                object data = formatter.Deserialize(streamMemory);
                streamMemory.Close();
                return data;
            }
            #endregion
    

      基本的序列化和反序列化

    View Code
     #region 从Xml文件通过XPath选择XmlNode
            /// <summary>
            /// 从Xml文件通过XPath选择XmlNode
            /// 编写时间:2011.11.09
            /// 是否完成:是
            /// </summary>
            /// <param name="sFile">XML文件地址</param>
            /// <param name="sXPath">XPath语句</param>
            /// <returns>单个XmlNode</returns>
            public static XmlNode SelectXmlNode(string sFile, string sXPath)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(sFile);
                return doc.SelectSingleNode(sXPath);
            }
            #endregion
    View Code
    #region Xml字符串反序列化到对象
            /// <summary>
            /// Xml字符串反序列化到对象
            /// 编写时间:2011.11.09
            /// 是否完成:是
            /// </summary>
            /// <param name="type">类型</param>
            /// <param name="sXml">Xml</param>
            /// <returns>object对象</returns>
            public static object DeserializeXml(Type type, string sXml)
            {
                using (StringReader sr = new StringReader(sXml))
                {
                    XmlSerializer xs = new XmlSerializer(type);
                    return xs.Deserialize(sr);
                }
            }
            #endregion
  • 相关阅读:
    router-link中传值的三种方式
    JVM原理和优化
    JAVA中关于锁机制
    思考程序
    论防御式编程与攻击式编程
    BOM详解
    理解JAVASCRIPT 闭包
    用HTML5 CANVAS做自定义路径的动态效果图片!
    js制作点击会自动隐藏的导航栏(固定在在头部的)
    ++a和a++的区别。
  • 原文地址:https://www.cnblogs.com/ywilson/p/3030817.html
Copyright © 2011-2022 走看看