C# Serializable对象序列化的作用

转载 2017年04月07日 11:40:28

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#中的"序列化" Serializable 理解

举个例子:用一个类描述一张合同,而这个类实例化后其中的字段保存着合同的信息,如果现在要把这个类的实例发送到另一台机器、另一个窗体或是想保存这个类以便以后再取出来用(持久化对象),可以对这个类进行序列化...
  • theoldfuture
  • theoldfuture
  • 2016年09月03日 05:41
  • 1349

C# Serializable标签 和序列化

今天同事开发Webapi接口的时候,发现一个很奇怪的情况,返回值中把model类的私有属性格式化成json字符串返回了。和同事看了半天发现是 [Serializable]这个标签的原因。同事查找了一下...
  • fox009521
  • fox009521
  • 2017年09月07日 18:37
  • 309

C#序列化与反序列化(Serializable and Deserialize)

序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与...
  • zhanglong_longlong
  • zhanglong_longlong
  • 2015年07月16日 11:52
  • 617

8.C#:[Serializable]的作用

本文来自:http://blog.sina.com.cn/s/blog_a401a1ea0101gyjp.html 如果你做远程方法调用(RPC)时,比如,服务器端有个类A及对象a,...
  • xushaozhang
  • xushaozhang
  • 2017年01月15日 21:53
  • 772

C# 类的序列化[Serializable]

简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建...
  • jiutao_tang
  • jiutao_tang
  • 2011年06月18日 21:38
  • 23128

.net中[Serializable]序列化的应用

浅析.NET中的Serialization   摘要 本文简要介绍了.NET中的序列化(Serialization)概念,以及在代码中实作Serialization的方法。文章的最后介绍了S...
  • wanlong360599336
  • wanlong360599336
  • 2013年07月02日 10:25
  • 4733

C#对象序列化与反序列化

C#对象序列化与反序列化 C#对象序列化与反序列化(转载自:http://www.cnblogs.com/LiZhiW/p/3622365.html) 1. 对象序列化的介绍........
  • kenkao
  • kenkao
  • 2015年11月23日 11:21
  • 1226

C#对象序列化详解

C#中的序列化主要是通过一个格式化工具获取某个自定义类型对象中的所有数据成员并写入传入的一个文件流中,或者从文件流对象中               解析出某个自定义类型对象中的所有数据成员并赋值到...
  • u011390632
  • u011390632
  • 2013年12月08日 17:30
  • 1844

C#——对象序列化为json

在这里讨论两种序列化方式 1、 JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer...
  • mozhi111
  • mozhi111
  • 2016年11月03日 09:38
  • 617

C#对象序列化之坑

序列化的方法很简单,如下:        ///         /// 文本化XML序列化        ///         /// 对象        public static string...
  • hawksoft
  • hawksoft
  • 2017年01月06日 17:03
  • 896
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# Serializable对象序列化的作用
举报原因:
原因补充:

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