序列化(Serialization)的使用

1.为什么要序列化

首先你应该理解序列化的目的,序列化的目的就是能够在网络上传输对象,否则就无法实现面相对象的分布式计算,比如你的客户端要调用服务器上的一个方法获得一个产品对象,比如方法为:public Character  FindCharacter(int character_id);


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


2.利用序列化技术,可以实现对象备份和还原。

序列化可以将内存中的对象(或者对象图)序列化为数据流,并保存到磁盘上进行持久化;还可以将数据流反序列化为对象,实现对象的还原。序列化技术在分布式系统的数据传输中得到充分的利用,如:XML Web Service 利用XML序列互是hi现跨平台,.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(24,"JACK");



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



BinaryFormatter serializer = new BinaryFormatter();

 

serializer.Serialize(fs,tbs);



fs.Close();



public Void Deserialize()//反序列化

{

ToBeSerizlized restore;

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

BinaryFormatter deserializer   = new BinaryFormatter();



restore = (ToBeSerialized)(deserializer.Deserialize(fs));//反序列化

fs.Close();

}













  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值