C# Serializable对象序列化的作用

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

时间: 2024-10-13 17:23:02

C# Serializable对象序列化的作用的相关文章

对象序列化和反序列化应该写为一个工具类

对象序列化和反序列化工具类 package com.umu.util; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.Object

Serializable在C#中的作用.net中的对象序列化 (转)

序列化是指将对象实例的状态存储到存储媒体的过程,在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转 换为字节流,然后再把字节流写入数据流,在随后对对象进行反序列化时,将创建出与原对象完全相同的副本. 在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡.只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行.例如,简单的二进制序列化不能满足需要,或者,由于特定原因需要确定类中那些字段需要序列化.以下各部分将探讨 .NET 框架提供的可靠的

JAVA 对象序列化——Serializable

1.序列化是干什么的?       简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化. 2.什么情况下需要序列化       a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候:    b)当你想用套接字在网络上传送对象的时候:    c)当你想通过RMI传输对象的时候: 3.当对一个对象

JAVA对象序列化(Serializable、ObjectOutputStream、ObjectInputStream、 transient)

1)对象序列化是把一个对象变为二进制的数据流的一种方法.对象序列化后可以方便的实现对象的传输或存储. 2)如果一个类的对象想被序列化,则对象所在的类必须实现Serialilzable接口.此接口中没有定义任何方法,所以此借口是一个标识接口,表示一个类具备被序列化的能力. 3)对象被序列化后变为二进制,可以经过二进制数据流进行传输.此时必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream). 4)在序列化中,只有属性被序列化.因为每个对象都具有

每天进步一点点-Java Serializable(对象序列化)的理解和总结

往硬盘文件里写数据 序列化:序列化是将对象转换为容易传输的格式的过程.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.在另一端,反序列化将从该流重新构造对象. 是对象永久化的一种机制. 确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存

【java】对象序列化Serializable

1 package 对象序列化; 2 3 import java.io.Serializable; 4 5 @SuppressWarnings("serial") 6 class A implements Serializable{ 7 8 } 9 public class TestSerializable { 10 public static void main(String[] args) { 11 12 } 13 } 对象序列化:java.io.ObjectOutputStrea

Serializable接口实现对象序列化

对象序列化就是把一个对象变为二进制的数据量的一种方法,通过对象序列化可以方便地实现对象的传输或存储. class Person2 implements Serializable { private String name; // 声明name属性 private int age; // 声明age属性 public Person2(String name, int age) { // 通过构造设置内容 this.name = name; this.age = age; } public Stri

Serializable序列化的作用

这里转载一篇讲解java序列化(Serializable)和反序列化方面的感觉很好的文章.1.序列化是干什么的?简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化.2.什么情况下需要序列化a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候:b)当你想用套接字在网络上传送对象的时候:c)当你

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

Java对象的序列化就是把一个对象变成二进制的数据流的一中方法,通过对象的序列化可以方便的实现对象的传输和存储. 原理是:对象------------->转换----------------->将对象转变为二进制的数据 在对象序列化时,只有其属性被序列化(每个对象都具备相同的方法,但是每个对象的属性不一定相同,也就是说对象保存的只有其属性信息) 那么一个类的对象要被序列化,这该类就必须实现java.io.Serializable接口,其源码如下: public interface Serial