.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);
    }
}    

 

posted @ 2018-01-18 20:12  秃顶程序员  阅读(256)  评论(0编辑  收藏  举报