重温CLR(十八) 运行时序列化】的更多相关文章

1,快速了解序列化----windows IO 系统,FileStream,BinaryFormatter,SoapFormatter--不支持泛型. public class SerializeRef { public static void CallQuick() { dynamic objectgrap = new List<string>() { "jeff", "kristin", "aldan", "grant&…
序列化是将对象或对象图转换成字节流的过程,反序列化是将字节流转换回对象图的过程.在对象和字节流之间转换是很有用的机制. 1 应用程序的状态(对象图)可轻松保存到磁盘文件或数据库中,并在应用程序下次运行时恢复.ASP.NET就是利用序列化和反序列来保存和还原会话状态. 2 一组对象可轻松复制到系统的剪贴板,再粘贴回同一个或另一个应用程序.事实上,windows窗体和windows presentation foundation(WPF)就利用了这个功能. 3 一组对象可克隆并放到一边作为“备份”:…
一.什么是运行时序列化 序列化的作用就是将对象图(特定时间点的对象连接图)转换为字节流,这样这些对象图就可以在文件系统/网络进行传输. 二.序列化/反序列化快速入门 一般来说我们通过 FCL 提供的 BinaryFormatter 对象就可以将一个对象序列化为字节流进行存储,或者通过该 Formatter 将一个字节流反序列化为一个对象. FCL 的序列化与反序列化 序列化操作: public MemoryStream SerializeObj(object sourceObj) { var m…
原文地址:http://msdn.microsoft.com/en-us/magazine/cc163791.aspx 原文发布日期: 9/19/2005 原文已经被 Microsoft 删除了,收集过程中发现很多文章图都不全,那是因为原文的图都不全,所以特收集完整全文. 目录 前言 CLR启动程序(Bootstrap)创建的域 系统域(System Domain) 共享域(Shared Domain) 默认域(Default Domain) 加载器堆(Loader Heaps) 类型原理 对象…
前言 SystemDomain, SharedDomain, and DefaultDomain. 对象布局和内存细节. 方法表布局. 方法分派(Method dispatching). 因为公共语言运行时(CLR)即将成为在Windows上创建应用程序的主角级基础架构, 多掌握点关于CLR的深度认识会帮助你构建高效的, 工业级健壮的应用程序. 在这篇文章中, 我们会浏览,调查CLR的内在本质, 包括对象实例布局, 方法表的布局, 方法分派, 基于接口的分派, 和各种各样的数据结构. 我们会使用…
1. 核心概述 1.1 堆概述 一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器.本地方法栈和虚拟机栈. 一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域 |  配置jvm及查看jvm进程 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了.是JVM管理的最大一块内存空间 | 堆内存的大小是可以调节的 <Java虚拟机规范>规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的 所有的线程…
熟悉面向对象编程的开发人员都深谙面向对象的好处,其中一个好处是代码重用,它极大提高了开发效率.也就是说,可以派生出一个类,让他继承基类的所有能力.派生类只需要重写虚方法,或添加一些新方法,就可定制派生类的行为,使之满足开发人员的需求.泛型(generic)是clr和编程语言提供的一种特殊机制,它支持另一种形式的代码重用,即“算法重用”. 简单地说,开发人员先定义好算法,比如排序.搜索.交换.比较或者转换等.但是,定义算法的开发人员并不设定该算法要操作什么数据类型.然后,另一个开发人员只要制定了算…
序列化是将对象或者对象图(一堆有包含关系的对象)转换成字节流的过程.而反序列化就是将字节流转为对象或对象图. 主要用于保存.传递数据,使得数据更易于加密和压缩. .NET内建了出色的序列化和反序列化支持. 上一个简单的小例子: using System.Runtime.Serialization.Formatters.Binary; namespace MyTest { class Program { static void Main(string[] args) { MemoryStream…
一. 序列化与反序列的作用 为什么要有序列化呢,考虑下面这种情况,在WINFORM或者更为方便的WPF工程中,当我们进行UI设计时,可以随意的将一个控件剪切/张贴到另外一个地方.操作方便的背后是什么在发挥作用呢.控件明明是一个复杂的对象,却可以进行剪切张贴.这其中就涉及到了对象的转换.将控件这个复杂的对象转换为字节流,进行复制,然后再将字节流反转为控件对象.这样就实现了控件的随意剪切与张贴. 上述就体现了序列化的应用场合,数据传送. 定义: 序列化:将对象转换为字节流. 反序列化:将字节流转换为…
序列化是将对象或对象图转化成字节流的过程.反序列化是将字节流转换回对象图的过程.…