zoukankan      html  css  js  c++  java
  • .NET 二进制序列化器,SOAP序列化器,XML序列化器

    这里就不说JSON序列化了,只介绍三种:二进制序列化器,SOAP序列化器,XML序列化器

    直接上代码:

    /// <summary>
    /// 二进制序列化器、
    /// 最节省流量,压缩程度最大的序列化器
    /// </summary>
    public static void BinarySerialize()
    {
        //文件路径
        string fileName = "文件.txt";
        //需要一个stream,这里是直接把数据写入文件了
        using (Stream sm = new FileStream(fileName, FileMode.Create, FileAccess.Read))
        {
              //获取数据
              List<Programmer> pList = DataFactory.BuildProgrammerList();
               //创建二进制序列化器
               BinaryFormatter binformat = new BinaryFormatter();
               //写入文件
               binformat.Serialize(sm, pList);
        }
        //反序列化成对象,从文件中获取数据
        using(Stream sm = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite))
        {
                //创建二进制序列化器
                BinaryFormatter binformat = new BinaryFormatter();
                //重置流位置
                sm.Position = 0;
                //反序列化
                List<Programmer> pList = (List<Programmer>)binformat.Deserialize(sm);
          }
     }
    /// <summary>
    /// soap序列化器
    /// </summary>
    public static void SoapSerialize()
    {
        //文件路径
        string filePath = "文件.txt";
        //需要一个Stream,这里直接把数据写入文件了
        using (Stream sm = new FileStream(filePath, FileMode.Create, FileAccess.Read))
        {
            //获取数据
            List<Programmer> pList = DataFactory.BuildProgrammerList();
            //创建soap序列化器
            SoapFormatter soapFormt = new SoapFormatter();
            //写入文件
            soapFormt.Serialize(sm, pList);
        }
        //反序列化
        using (Stream sm = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite))
        {
            //创建soap序列化器
            SoapFormatter soapFormat = new SoapFormatter();
            //序列化成对象
            List<Programmer> pList = (List<Programmer>)soapFormat.Deserialize(sm);
        }
    }
    /// <summary>
    /// XML序列化器
    /// </summary>
    public static void XmlSerialize()
    {
        //文件路径
        string filePath = "";
        using(Stream sm = new FileStream(filePath, FileMode.Create, FileAccess.Read))
        {
            List<Programmer> pList = DataFactory.BuildProgrammerList();
            //创建xml序列化器,需要指定对象的类型
            XmlSerializer xmlFormat = new XmlSerializer(typeof(List<Programmer>));
            //写入文件
            xmlFormat.Serialize(sm, pList);
        }
        using (Stream sm = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite))
        {
            //创建xml序列化器
            XmlSerializer xmlFormat = new XmlSerializer(typeof(List<Programmer>));
            //反序列化成对象
            List<Programmer> pList = (List<Programmer>)xmlFormat.Deserialize(sm);
        }
    }    
  • 相关阅读:
    走进DOM:HTML DOM
    iOS 去掉UITableView风格为group时候的最顶部的空白距离
    Codeforces 394D Physical Education and Buns 胡搞
    查询出每一个雇员的姓名,工资,部门名称,工资在公司的等级及其领导的姓名,领导的工资,以及领导所相应的等级
    CCBAnimationManager
    sendto 和 recvfrom 函数
    三张图让你高速明确activity与fragment生命周期的异同点
    EWS 流通知订阅邮件
    [EWS]如何: 通过使用 Exchange 中的 EWS 流有关邮箱事件的通知
    async、await正确姿势
  • 原文地址:https://www.cnblogs.com/liuqiwang/p/8312824.html
Copyright © 2011-2022 走看看