【转】C# Serializable对象序列化的作用

转载 2015年09月14日 17:06:14

 1、序列化定义:将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。反之,反序列化根据流重新构造对象。

在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本

2、使用序列化的原因:将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;按值将对象从一个应用程序域发送至另一个应用程序域。例如,序列化可用于在 ASP.NET 中保存会话状态,以及将对象复制到 Windows 窗体的剪贴板中。它还可用于按值将对象从一个应用程序域远程传递至另一个应用程序域。本文简要介绍了 Microsoft .NET 中使用的序列化。

3、基本序列化

[Serializable]

public class MyObject {

    public int n1 = 0;       

    public int n2 = 0;         

    public String str = null;      

       }

 以下代码片段说明了如何将此类的一个实例序列化为一个文件:

  MyObject obj = new MyObject();            

    obj.n1 = 1;          

      obj.n2 = 24;            

      obj.str = "一些字符串";

     IFormatter formatter = new BinaryFormatter();            

    Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);            

    formatter.Serialize(stream, obj);            

    stream.Close();

4、五.选择性序列化    

 类通常包含不应被序列化的字段。例如,假设某个类用一个成员变量来存储线程 ID。当此类被反序列化时,序列化此类时所存储的 ID 对应的线程可能不再运行,所以对这个值进行序列化没有意义。可以通过使用 NonSerialized 属性标记成员变量来防止它们被序列化,如下所示:

 [Serializable]            

public class MyObject            

 {               

   public int n1;               

   [NonSerialized]

   public int n2;             

   public String str;      

 }

 

C# 序列号与反序列化总结

 1、 C# 序列化与反序列化

 2、C# Serializable对象序列化的作用 (此文)

 参考:http://www.cnblogs.com/winner/archive/2008/03/25/1120757.html


原文:http://www.cnblogs.com/linlf03/archive/2011/11/03/2234424.html

C# Serializable对象序列化的作用

1、序列化定义:将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。反之,反序列化根据流重新构造对象。 在此过...
  • yinghuolsx
  • yinghuolsx
  • 2017年04月07日 11:40
  • 590

对Java Serializable(序列化)的理解和总结

我对Java Serializable(序列化)的理解和总结 博客分类:  Java技术 JavaOSSocketCC++  1、序列化是干什么的?        简单说就是...
  • dreamtdp
  • dreamtdp
  • 2013年11月11日 20:00
  • 45733

Java 序列化Serializable详解(附详细例子)

Java 序列化Serializable详解(附详细例子) 1、什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserializa...
  • lixingshi
  • lixingshi
  • 2016年06月27日 02:06
  • 1614

什么是java序列化,如何实现java序列化?或请解释Serializable接口的作用

首先要明确序列化的目的:     1.无论何种类型的数据,都是以二进制的形式在网络上传送,为了由一个进程把Java对象发送给另一个进程,需要把其转换为字节序列才能在网络上传送,把JAVA对象转换...
  • hustwht
  • hustwht
  • 2016年08月09日 00:19
  • 4195

浅谈javascript的序列化

感觉一讲到序列化,可能是由于java用的比较习惯的原因。。。(ps:虽然还是一名渣渣)马上就想到的是java中使用的序列化,比如实现serializable接口。今天在使用javascript中的时候...
  • jiangxindu1
  • jiangxindu1
  • 2015年07月27日 19:32
  • 1360

Java对象序列化原理以及Serializable接口

Java对象的序列化就是把一个对象变成二进制的数据流的一中方法,通过对象的序列化可以方便的实现对象的传输和存储。 原理是:对象------------->转换----------------->将对象...
  • fengshizty
  • fengshizty
  • 2014年11月20日 16:16
  • 2498

Java对象的序列化和反序列化Serializable

对象的序列化 对象序列化就是把一个对象变为二进制数据流的一种方法。 一个类要想被序列化,就行必须实现java.io.Serializable接口。虽然这个接口中没有任何方法,就如同之前的cloneab...
  • lingzhm
  • lingzhm
  • 2015年04月14日 21:02
  • 1973

利用serializable将对象保存到本地

以前保存本地我只会用到SQLite,xml和sp。 今天大佬突然说你不会归档吗?(大佬是ios的),我说什么是归档,结果一查,就是安卓的 序列化serializable 我以前只会在acitiv...
  • qq_28183203
  • qq_28183203
  • 2017年06月16日 17:20
  • 259

输入输出之对象序列化Serializable

1.对象序列化的目标 将对象保存到磁盘中,或允许在网络中直接输出对象。 2.对象序列化的含义 对象的序列化是指将一个Java对象写入IO流中。 对象的反序列化是...
  • hanhan1016
  • hanhan1016
  • 2015年09月18日 14:21
  • 997

Java Serializable序列化,反序列化 ,serialVersionUID的作用

Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。如此可以把对象转换成字节流,可以进行网络传输,保持到本地文件,数据库等,增加对象的生命周...
  • chenchaofuck1
  • chenchaofuck1
  • 2016年03月07日 16:31
  • 1555
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【转】C# Serializable对象序列化的作用
举报原因:
原因补充:

(最多只允许输入30个字)