将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

<!--more-->

.NET Framework 提供了两个序列化技术:

  • 二进制序列化保持类型保真,这对于多次调用应用程序时保持对象状态非常有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。您可以将对象序列化到流、磁盘、内存和网络等。远程处理使用序列化,“按值”在计算机或应用程序域之间传递对象。

  • XML 序列化只序列化公共属性和字段,并且不保持类型保真。当您希望提供或使用数据而不限制使用该数据的应用程序时,这一点非常有用。

Binary

首先需要定义一个类,这个类作为保存的类,需要使用特性 Serializable

然后使用 binaryFormatter 他可以写入流

创建一个文件夹,返回和People类,就可以把他保存在本地

             BinaryFormatter binaryFormatter = new BinaryFormatter();FileStream stream = new FileStream("./file", FileMode.Create);binaryFormatter.Serialize(stream, people);

这就是序列化,如果需要从保存的文件拿出来,可以参见下面代码:

             using (FileStream stream = new FileStream("./file", FileMode.Open)){people = (People) binaryFormatter.Deserialize(stream);Console.WriteLine(people.Name);}

可以看到代码都是使用命令行不是使用通用程序

XML序列化

               XmlSerializer xmlSerializer = new XmlSerializer(typeof(People));using (FileStream stream = new FileStream("./file", FileMode.Create)){xmlSerializer.Serialize(stream, people);}using (FileStream stream = new FileStream("./file", FileMode.Open)){people = (People)xmlSerializer.Deserialize(stream);Console.WriteLine(people);}

如果有一些属性需要不显示,也就是不放在文件,可以参见:https://msdn.microsoft.com/zh-cn/library/83y7df3e(v=vs.90).aspx

XmlSerializer 创建 C# 文件并将其编译为 .dll 文件,以执行此序列化。
为了提高性能,XML 序列化基础结构动态生成程序集,以便对指定类型进行序列化和反序列化。该基础结构将找到并重新使用这些程序集。仅当使用以下构造函数时,才会发生此行为:

XmlSerializer.XmlSerializer(Type)

XmlSerializer.XmlSerializer(Type, String)

如果使用任何其他构造函数,则将生成同一个程序集的多个版本,这些版本始终不予卸载

Yaml序列化

首先搜索 YamlDotNet ,安装

这里使用参见 http://www.cnblogs.com/RicCC/archive/2010/03/01/serialization-data-format.html

参见:

win10 uwp json

win10 uwp 读写XML


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

转载于:https://www.cnblogs.com/lindexi/p/6949646.html

win10 UWP 序列化相关推荐

  1. win10 UWP 应用设置

    win10 UWP 应用设置 简单的把设置需要的,放到微软自带的LocalSettings LocalSettings.Values可以存放几乎所有数据 如果需要存放复合数据,一个设置项是由多个值组成 ...

  2. win10 uwp DataContext

    本文告诉大家DataContext的多种绑法. 适合于WPF的绑定和UWP的绑定. 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用.当然,可以在新手面前秀下,一个页面 ...

  3. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  4. win10 uwp 毛玻璃

    原文:win10 uwp 毛玻璃 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http://lindexi.gitee.io 访问博 ...

  5. win10 uwp 打包第三方字体到应用

    原文:win10 uwp 打包第三方字体到应用 有时候我们会把一些特殊字体打包到软件,因为如果找不到我们的字体会变为默认,现在很多字体图标我们用得好,有时候我们的应用会用很漂亮的字体,需要我们自己打包 ...

  6. Win10 UWP开发中的重复性静态UI绘制小技巧 1

    Win10 UWP开发中的重复性静态UI绘制小技巧 1 原文:Win10 UWP开发中的重复性静态UI绘制小技巧 1 介绍 在Windows 10 UWP界面实现的过程中,有时会遇到一些重复性的.静态 ...

  7. win10 uwp 使用 Matrix3DProjection 进行 3d 投影

    win10 uwp 使用 Matrix3DProjection 进行 3d 投影 原文:win10 uwp 使用 Matrix3DProjection 进行 3d 投影 版权声明:博客已迁移到 htt ...

  8. win10 uwp 线程池

    win10 uwp 线程池 原文:win10 uwp 线程池 如果大家有开发 WPF 或以前的程序,大概知道线程池不是 UWP 创造的,实际上在很多技术都用到线程池. 为什么需要线程池,他是什么?如何 ...

  9. win10 uwp unix timestamp 时间戳 转 DateTime

    win10 uwp unix timestamp 时间戳 转 DateTime 原文:win10 uwp unix timestamp 时间戳 转 DateTime 有时候需要把网络的 unix ti ...

最新文章

  1. mysql command type_mysql command line client 使用命令
  2. 20130717随想
  3. Clickhouse 在腾讯的应用实践
  4. [Domino]Java访问Domino必需配置的服务器设置
  5. c语言中有关逗号表达式
  6. gulp-livereload组件使用
  7. Java性能调优实战-怎样才能做好性能调优?
  8. 二级Visual Basic语言视频教程
  9. xshell写JS脚本自动进行操作
  10. mac共享文件android,Mac访问局域网共享文件方法
  11. 《经济学通识》十二、谈环保
  12. 3、HeidiSQL数据库管理工具下载与安装
  13. vmware“增强型虚拟键盘”键呈灰色不能修改状态
  14. 程序员如何实现财务自由?
  15. Scala的null/空对象
  16. 【K8S】ctr和crictl的区别
  17. 文本主题模型之潜在语义分析(LSA)
  18. html字体投影效果,IE10中的CSS3文字阴影(text-shadow)属性
  19. 计算机打印机端口配置,如何设置打印机端口
  20. latex 章节序号改为中文

热门文章

  1. 腾讯地图api修改信息窗口样式_ThingJS通过地图的信息窗口展示常见数据
  2. Double类型比较大小
  3. idea 报错 java: 无效的源发行版: 11
  4. Android开发笔记(九十八)往图片添加部件
  5. php版本栈的应用中缀表达式求值
  6. Wine 4.4 发布,Windows 应用的兼容层
  7. Go36-32-context.Context
  8. 使用即时通讯(IM)SDK心得体验
  9. linux命令逻辑运算:与、或、非、异或
  10. 最少拦截系统 贪心