• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#序列化与反序列化实例

C#序列化与反序列化实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#序列化和反序列化,c#json反序列化,c#序列化,c#json序列化,c#xml序列化等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#序列化与反序列化的方法。分享给大家供大家参考。具体分析如下:

把“对象”转换为“字节序列”的过程称为对象的序列化。     把“字节序列”恢复为“对象”的过程称为对象的反序列化。
序列化
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Runtime.Serialization.Formatters.Binary; 
 
namespace 序列化与反序列化 
{ 
    //序列化就是将对象转换成二进制 
    //反序列化就是将二进制转换成对象 
 
    //序列化与反序列化的作用就是:传输数据。  
    //我们在网络中传输数据的时候只有二进制这个形态是可以被传输的。也就是说我们不管在网络中传输什么内容,都会先把你要传输的内容序列化成二进制的数据,对方接收到的同样就是一个二进制的数据,它需要再对这个二进制的数据进行反序列化成一个对象。 
 
    //我们要序列化一个类,第一步就要将类标记为可以被序列化的。用[Serializable]关键字。只有被[Serializable]标记的类创建出来的对象才能被序列化 
 
    [Serializable] //这个[Serializable]的作用是:指示一个类可以序列化。无法继承此类。 
    public class Person 
    { 
        public string Name { get; set; } 
 
        public int Age{get;set;} 
 
        public char Gender{get;set;} 
 
        public Person() { } 
 
        public Person(string name, int age, char gender) 
        { 
            this.Name = name; 
            this.Age = age; 
            this.Gender = gender; 
        } 
    } 
 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            //现在我们要将p这个对象,传输给对方的电脑。现在没有对方的电脑,那我就在自己的电脑上模拟一下:现在通过一个流将p这个对象转换成二进制,写到我的桌面上。然后我们再将这个二进制文件在通过反序列化成一个对象 
            Person p = new Person("雪辉", 25, '女'); 
            using (FileStream stream = new FileStream(@"C:\Users\凡斌\Desktop\11.txt", System.IO.FileMode.OpenOrCreate, FileAccess.Write)) 
            {  
                //开始序列化对象。开始序列化对象需要一个类 
                BinaryFormatter bf = new BinaryFormatter(); 
 
                //public void Serialize(Stream serializationStream, object graph); 这个Serialize方法的第一个参数:是对象要序列化成的流文件,第二个参数是:要序列化的对象 
                bf.Serialize(stream, p); 
            } 
            Console.WriteLine("序列化完毕"); 
        } 
    } 
}</div>

反序列化
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Runtime.Serialization.Formatters.Binary; 
 
namespace 序列化与反序列化 
{ 
    [Serializable] 
    public class Person 
    { 
        public string Name { get; set; } 
 
        public int Age { get; set; } 
 
        public char Gender { get; set; } 
    } 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            //现在我们再将刚刚写到桌面的二进制流文件11.txt通过反序列化成一个对象
            using (FileStream stream2 = new FileStream(@"C:\Users\凡斌\Desktop\11.txt", FileMode.Open, FileAccess.Read)) 
            { 
                BinaryFormatter bf2 = new BinaryFormatter(); 
 
                //public object Deserialize(Stream serializationStream);这个Deserialize方法的参数是:要反序列化的二进制流文件。它的返回值是一个object 所有我们要将这个object强转成Person类型。 
                Person p2=(Person) bf2.Deserialize(stream2); 
 
                Console.WriteLine("方序列化成功"); 
                Console.WriteLine(p2.Name); //输出:雪辉 
                Console.ReadKey(); 
            } 
        } 
    } 
}</div>

序列化  
 
将此类的一个实例序列化为一个文件: 
【MyFile.bin  这个文件是把obj对象序列化后持久化存储的文件】 
obj.n1 = 1;  
obj.n2 = 24;  
obj.str = "

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#编程总结(一)序列化总结
  • C#反序列化到类的实现方法
  • C#实现的序列化通用类实例
  • C#序列化与反序列化实例
  • C# 三种序列化方法分享
  • 深入理解C#序列化与反序列化的详解
  • c#数据的序列化和反序列化(推荐版)

相关文章

  • 2017-05-28C#实现从windows剪贴板获取内容的方法
  • 2017-05-28C#定义简单的反射工厂实例分析
  • 2017-05-28C#打包应用程序,与.NETFramework介绍
  • 2017-05-28C#获取存储过程返回值和输出参数值的方法
  • 2017-05-28Windows系统中C#读写ini配置文件的程序代码示例分享
  • 2017-05-28C# this关键字的四种用法
  • 2017-05-28C#中图片旋转和翻转(RotateFlipType)用法分析
  • 2017-05-28WinForm实现程序一段时间不运行自动关闭的方法
  • 2017-05-28Windows窗体的.Net框架绘图技术实现方法
  • 2017-05-28C# 禁用鼠标中间键的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c# 可疑文件扫描代码(找到木马)(简)
    • Mongodb在CSharp里实现Aggregate实例
    • C#实现调用迅雷下载的方法
    • C#实现给DataGrid单元行添加双击事件的方法
    • 基于C#实现的多生产者多消费者同步问题实例
    • c#使用xamarin编写拨打电话程序
    • C#实现图像锐化的方法
    • 互斥量mutex的简单使用(实例讲解)
    • C#图像透明度调整的方法
    • C#实现合并多个word文档的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有