C#中对象的序列化与反序列化
无须多言,代码如下:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.Windows.Forms;
using System.Text;
namespace ConsoleApplication2
{
[DataContract(Namespace = "http://coderzh.cnblogs.com")]
class Config
{
[DataMember(Order = 0)]
public string encoding { get; set; }
[DataMember(Order = 1)]
public string[] plugins { get; set; }
[DataMember(Order = 2)]
public Indent indent { get; set; }
}
[DataContract(Namespace = "http://coderzh.cnblogs.com")]
class Indent
{
[DataMember(Order = 0)]
public int length { get; set; }
[DataMember(Order = 1)]
public bool use_space { get; set; }
}
class Program
{
static void Main(string[] args)
{
var config = new Config()
{
encoding = "UTF-8",
plugins = new string[] { "python", "C++", "C#" },
indent = new Indent() { length = 4, use_space = false }
};
var serializer = new System.Runtime.Serialization.DataContractSerializer(typeof(Config));
var stream = new MemoryStream();
serializer.WriteObject(stream, config);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0, (int)stream.Length);
string dataString = Encoding.UTF8.GetString(dataBytes);
Console.WriteLine("JSON string is:");
//Console.WriteLine(dataString);
MessageBox.Show(dataString);
Console.ReadLine();
var mStream = new MemoryStream(Encoding.Default.GetBytes(dataString));
Config readConfig = (Config)serializer.ReadObject(mStream);
Console.WriteLine("Encoding is: {0}", readConfig.encoding);
foreach (string plugin in readConfig.plugins)
{
Console.WriteLine("plugins is: {0}", plugin);
}
Console.WriteLine("indent.length is: {0}", readConfig.indent.length);
Console.WriteLine("indent.use_space is: {0}", readConfig.indent.use_space);
Console.ReadLine();
}
}
}
C#中对象的序列化与反序列化相关推荐
- java中对象的序列化和反序列化
[对象的序列化和反序列化 ] 1.定义: 序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才 ...
- 一文带你全面了解java对象的序列化和反序列化
本文分享自华为云社区<java中什么是序列化和反序列化?>,原文作者:dayu_dls . 这篇文章主要给大家介绍了关于java中对象的序列化与反序列化的相关内容,文中通过详细示例代码介绍 ...
- ProtoBuf的介绍以及在Java中使用protobuf将对象进行序列化与反序列化
场景 ProtoBuf简介 protocol buffers 是一种语言无关.平台无关.可扩展的序列化结构数据的方法,它可用于(数据)通信协议.数据存储等. Protocol Buffers 是一种灵 ...
- Java对象的序列化与反序列化
序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如文件或是内存缓冲区等.在网络传输过程中,可以是字节或是 ...
- ASP.NET中JSON的序列化和反序列化
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
- Java 对象的序列化和反序列化
当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再 ...
- 对象的序列化与反序列化---IO学习笔记(四)
对象的序列化,反序列化 对象的序列化: 就是将Object转换成byte序列 对象的反序列化: 将byte序列转换成Object 序列化流,反序列化流 序列化流(ObjectOutputStream) ...
- js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind
数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...
- java对象的序列化和反序列化详细解释
java对象的序列化和反序列化是什么意思 1.序列化是干啥用的? 序列化的原本意图是希望对一个Java对象作一下"变换",变成字节序列,这样一来方便持久化存储到磁盘,避免程序运行结 ...
最新文章
- 部署SD-WAN后网络安全挑战仍然存在—Vecloud
- 文件系统_Docker文件系统实战
- Jboss AS7 的一些配置备忘
- 写给大数据从业者:数据科学的5个陷阱与缺陷
- 基于MM2的跨IDC kafka热备多活方案
- 归并排序Python代码
- windows下IDEA全面红色,但是能编译,不能智能提示
- 拓端tecdat|R语言中自编基尼系数的CART回归决策树的实现
- 锐捷 重启计算机,win7系统锐捷客户端总是提示重启计算机后才能使用的解决方法...
- C++ MFC控件重影-编辑框重影
- 笔记本触摸板手势使用
- java 优势和劣势
- 微信播放在服务器视频无法播放,微信收藏的视频不能播放怎么办?怎么收藏视频?...
- vim配置——MA6174
- 【机器学习面经】AI算法岗位简历必备
- [羊城杯 2020]A Piece Of Java
- 使用jupyter环境在数据集处理中遇到.ipynb_checkpoints no such file or directory的问题
- 米聊之死 雷军的“猪”折了腿?
- IOS9禁用UIWebView的放大镜
- 你应该知道的 setTimeout 秘密