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
  • 相关阅读:
    Java垃圾收集算法
    Java回收方法区中回收的类
    Android 聊天软件客户端
    Android 面试
    基于Android的简单聊天工具-服务器端
    Java多线程
    业务序号重排序
    Dubbo异步转同步
    Dubbo加权轮询负载均衡算法应用之推荐产品
    Linux文件句柄数配置
  • 原文地址:https://www.cnblogs.com/ywilson/p/3030817.html
Copyright © 2011-2022 走看看