zoukankan      html  css  js  c++  java
  • 序列化【译】

    以下的是自己尝试翻译MSDN的文章

    原文:http://msdn.microsoft.com/en-us/library/7ay27kt9(v=vs.110).aspx

    序列化是把对象转化为成一种可以保存和传输的过程,它的反过程就是反序列化,反序列化死指把数据流转化为对象的过程。这两个过程使得数据的存储和传输变得很方便。

    .NET Framework 有两种序列化的技术:

    • 二进制序列化可以保留类型,在不同的应用之间保存对象。比如,你可以用二进制序列化的方法把对象序列化并保存在剪切板上。你可以把对象序列化成数据流 保存在硬盘,内存,然后通过网络传输,把数据传到另一个电脑,应用或者域。
    • XML 序列化只会序列化公共的属性和成员,并且不会保留类型。XML 是一种公用标准形式。XML 数列化对web间共用数据是一个不错的选择。比如:SOAP。

    引用

    System.Runtime.Serialization:用来序列化对象

    System.Xml.Serialization: 用来把对象序列化成XML数据流或者文件

        

    怎么序列化对象

    首先需要建立一个对象并且设置它的公共属性和成员,接下来你必须定义需要传输的格式,是数据流还是文件。

       public class test
        {
            public string name;
            public int age;
            private double money;
    
            public test()
            {
                name = "Cathy";
                age = 24;
                money = 10000.00;
     
            }
    
    
        }
    
                test Cathy = new test();
                XmlSerializer mySerializer = new XmlSerializer(typeof(test));
                StreamWriter myWriter = new StreamWriter("myFileName.xml");
                mySerializer.Serialize(myWriter, Cathy);
                myWriter.Close();

    生成的XML文件如下:

      <?xml version="1.0" encoding="utf-8" ?> 
    - <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <name>Cathy</name> 
      <age>24</age> 
      </test>

    怎么反序列化对象

    当你反序列化一个对象时,传输格式决定你是建数据流还是文件。

                test Cathy;
                XmlSerializer mySerializer = new XmlSerializer(typeof(test));
                FileStream myFileStream = new FileStream("myFileName.xml", FileMode.Open);
                Cathy = (test)mySerializer.Deserialize(myFileStream);
  • 相关阅读:
    mysql 函数 存储过程 事件(event) job 模板
    protobuf 无proto 解码 decode 语言 java python
    mitmproxy fiddler 抓包 填坑
    android adb 常用命令
    android机器人 模拟 踩坑过程
    RabbitMQ添加新用户并支持远程访问
    Windows下RabbitMQ安装及配置
    Java mybatis mysql 常用数据类型对应关系
    easyExcel 踩坑
    linux防火墙查看状态firewall、iptable
  • 原文地址:https://www.cnblogs.com/Jenny90/p/3613836.html
Copyright © 2011-2022 走看看