无须多言,代码如下:

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#中对象的序列化与反序列化相关推荐

  1. java中对象的序列化和反序列化

    [对象的序列化和反序列化 ] 1.定义: 序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才 ...

  2. 一文带你全面了解java对象的序列化和反序列化

    本文分享自华为云社区<java中什么是序列化和反序列化?>,原文作者:dayu_dls . 这篇文章主要给大家介绍了关于java中对象的序列化与反序列化的相关内容,文中通过详细示例代码介绍 ...

  3. ProtoBuf的介绍以及在Java中使用protobuf将对象进行序列化与反序列化

    场景 ProtoBuf简介 protocol buffers 是一种语言无关.平台无关.可扩展的序列化结构数据的方法,它可用于(数据)通信协议.数据存储等. Protocol Buffers 是一种灵 ...

  4. Java对象的序列化与反序列化

    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如文件或是内存缓冲区等.在网络传输过程中,可以是字节或是 ...

  5. ASP.NET中JSON的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  6. Java 对象的序列化和反序列化

    当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再 ...

  7. 对象的序列化与反序列化---IO学习笔记(四)

    对象的序列化,反序列化 对象的序列化: 就是将Object转换成byte序列 对象的反序列化: 将byte序列转换成Object 序列化流,反序列化流 序列化流(ObjectOutputStream) ...

  8. js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind

    数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...

  9. java对象的序列化和反序列化详细解释

    java对象的序列化和反序列化是什么意思 1.序列化是干啥用的? 序列化的原本意图是希望对一个Java对象作一下"变换",变成字节序列,这样一来方便持久化存储到磁盘,避免程序运行结 ...

最新文章

  1. 部署SD-WAN后网络安全挑战仍然存在—Vecloud
  2. 文件系统_Docker文件系统实战
  3. Jboss AS7 的一些配置备忘
  4. 写给大数据从业者:数据科学的5个陷阱与缺陷
  5. 基于MM2的跨IDC kafka热备多活方案
  6. 归并排序Python代码
  7. windows下IDEA全面红色,但是能编译,不能智能提示
  8. 拓端tecdat|R语言中自编基尼系数的CART回归决策树的实现
  9. 锐捷 重启计算机,win7系统锐捷客户端总是提示重启计算机后才能使用的解决方法...
  10. C++ MFC控件重影-编辑框重影
  11. 笔记本触摸板手势使用
  12. java 优势和劣势
  13. 微信播放在服务器视频无法播放,微信收藏的视频不能播放怎么办?怎么收藏视频?...
  14. vim配置——MA6174
  15. 【机器学习面经】AI算法岗位简历必备
  16. [羊城杯 2020]A Piece Of Java
  17. 使用jupyter环境在数据集处理中遇到.ipynb_checkpoints no such file or directory的问题
  18. 米聊之死 雷军的“猪”折了腿?
  19. IOS9禁用UIWebView的放大镜
  20. 你应该知道的 setTimeout 秘密

热门文章

  1. C语言学习笔记(16)
  2. hdu 5266(线段树+LCA)
  3. hdu-1541 Stars----- 树状数组
  4. NYOJ 49 开心的小明
  5. hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (背包问题)
  6. hdu 1087 Super Jumping! Jumping! Jumping! 动态规划
  7. Golang的日志记录器
  8. python之sys模块详解
  9. 机器学习sklearn19.0聚类算法——Kmeans算法
  10. BitMap算法应用:Redis队列滤重优化