• 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#序列化,c#json反序列化,c#json序列化,c#xml序列化等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

序列化是将一个对象转换成字节流以达到将其长期保存在内存、数据库或文件中的处理过程。它的主要目的是保存对象的状态以便以后需要的时候使用。与其相反的过程叫做反序列化。

序列化一个对象
为了序列化一个对象,我们需要一个被序列化的对象,一个容纳被序列化了的对象的(字节)流和一个格式化器。进行序列化之前我们先看看System.Runtime.Serialization名字空间。ISerializable接口允许我们使任何类成为可序列化的类。

如果我们给自己写的类标识[Serializable]特性,我们就能将这些类序列化。除非类的成员标记了[NonSerializable],序列化会将类中的所有成员都序列化。

序列化的类型
•二进制(流)序列化
•SOAP序列化
•XML序列化
二进制(流)序列化:
二进制(流)序列化是一种将数据写到输出流,以使它能够用来自动重构成相应对象的机制。二进制,其名字就暗示它的必要信息是保存在存储介质上,而这些必要信息要求创建一个对象的精确的二进制副本。在二进制(流)序列化中,整个对象的状态都被保存起来,而XML序列化只有部分数据被保存起来。为了使用序列化,我们需要引入System.Runtime.Serialization.Formatters.Binary名字空间. 下面的代码使用BinaryFormatter类序列化.NET中的string类型的对象。

SOAP序列化:
SOAP协议是一个在异构的应用程序之间进行信息交互的理想的选择。我们需要在应用程序中添加System.Runtime.Serialization.Formatters.Soap名字空间以便在.Net中使用SOAP序列化。SOAP序列化的主要优势在于可移植性。SoapFormatter把对象序列化成SOAP消息或解析SOAP消息并重构被序列化的对象。下面的代码在.Net中使用SoapFormatter类序列化string类的对象。

XML序列化:
根据MSDN的描述,“XML序列化将一个对象或参数的公开字段和属性以及方法的返回值转换(序列化)成遵循XSD文档标准的XML流。因为XML是一个开放的标准,XML能被任何需要的程序处理,而不管在什么平台下,因此XML序列化被用到带有公开的属性和字段的强类型类中,它的这些发生和字段被转换成序列化的格式(在这里是XML)存储或传输。”

我们必须添加System.XML.Serialization引用以使用XML序列化。使用XML序列化的基础是XmlSerializer。下面的代码是在.Net中使用XmlSerializer类序列化string对象。

using System;
using System.IO;
using System.Xml.Serialization;

namespace SerializationTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //Serialization of String Object           
            string strobj = "test string for serialization";
            FileStream stream = new FileStream("C:\\StrObj.txt", FileMode.Create, FileAccess.Write ,
            FileShare.None);
            XmlSerializer  xmlserializer = new XmlSerializer(typeof(string));
            xmlserializer.Serialize(stream, strobj);
            stream.Close();

 
          &n

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

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

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

相关文章

  • 2017-05-28C#中GraphicsPath的Widen方法用法实例
  • 2017-05-28解读在C#中winform程序响应键盘事件的详解
  • 2017-05-28用C#编写获取远程IP,MAC的方法
  • 2017-05-28使用C#开源文件实时监控工具Tail&TailUI介绍
  • 2017-05-28C#实现简单聊天程序的方法
  • 2017-05-28浅谈C#设计模式之代理模式
  • 2017-05-28C#利用QrCode.Net生成二维码(Qr码)的方法
  • 2017-05-28C# Console类的具体用法
  • 2017-05-28c#二维码生成的代码分享
  • 2017-05-28C#实现的AES加密解密完整实例

文章分类

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

最近更新的内容

    • C#模拟window操作鼠标的方法
    • C#线程定义和使用方法详解
    • c#编写的高并发数据库控制访问代码
    • 实现ASP.NET无刷新下载并提示下载完成的开发思路
    • C#中FormsAuthentication用法实例
    • C#七大经典排序算法系列(下)
    • C#生成随机数实例
    • C#实现清除IE浏览器缓存的方法
    • C#实现读取DataSet数据并显示在ListView控件中的方法
    • c#之利用API函数实现动画窗体的方法详解

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

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