还是这个序列化的解释比较好懂

序列化(Serialization)是.NET平台最酷的特性之一。

1、为什么要序列化:

首先你应该明白系列化的目的就不难理解他了。系列化的目的就是能在网络上传输对象,否则就无法实现面向对象的分布式计算。比如你的客户端要调用服务器上的一个方法获得一个产品对象,比如方法为:public   Product   findProduct(int   product_id);   

  注意该方法返回一个Product对象,如果没有系列化技术,客户端就收不到返回的对象Product。而序列化的实现就是把对象变成一个可在网络上传输的字节流。

2、利用序列化技术,可以实现对象的备份和还原。序列化可以将内存中的对象(或对象图)序列化为数据流,并保存到磁盘上进行持久化;还可以将数据流反序列化为对象,实现对象的还原。序列化技术在分布式系统的数据传输中得到充分的利用,如:XML Web Service 利用XML序列化实现跨平台,.NET Remoting 则用到了二进制序列化和SOAP序列化。

.NET Compact Framework 2.0 支持XML序列化,不支持二进制序列化和SOAP序列化。而 .NET Compact Framework 1.0 连XML序列化都不支持。不过 OpenNETCF 1.x 为 .NET CF 1.0 实现了一个XML序列化的类,这个类在 OpenNETCF.Xml.dll 程序集中可以找到。

序列化和反序列化用于将一个对象保存到文件,和从文件读取。

using   System.IO;   

using   System.Runtime.Serialization.Formatters.Binary;   

[Serializable()]//可以序列化的类需要用这个属性标记   



public   class   ToBeSerialized   

{   

      public   int   a;   

      public   string   b;   

      public   ToBeSerialized(int   a,string   b)   

     {   

         this.a=a;   

         this.b=b;   

      }   

}   



public   class   Test   

{   

    

  public   void   Serialize()//序列化   

  {   

      ToBeSerialized   tbs = new   ToBeSerialized(22,"SOM");   

      Stream   fs   =   File.Create("Serialized.txt");   

      BinaryFormatter   serializer   =   new   BinaryFormatter();   

      serializer.Serialize(fs,   tbs);   

      fs.Close();   

  }   

  

public   void   DeSerialize()//反序列化   

  {   

     ToBeSerialized   restore;   

      Stream   fs   =   File.OpenRead("Serialized.txt");   

      BinaryFormatter   deserializer   =   new   BinaryFormatter();   

     restore   =   (ToBeSerialized)(deserializer.Deserialize(fs));//反序列化得到的对象   

     fs.Close();   

  }   

}

  

  

你可能感兴趣的:(序列化)