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函数大全
    Hibernate的理论知识点
    捕获异常
    重定向到其他的页面
    Jquery中val、text、html的区别
    条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
    inline-block元素的4px空白间距解决方案
    img标签中alt属性与title属性
    3像素文本偏移bug 解决方案
    google Ip
  • 原文地址:https://www.cnblogs.com/Jenny90/p/3613836.html
Copyright © 2011-2022 走看看