title author date CreateTime categories
win10 UWP 序列化
lindexi
2018-08-10 19:16:50 +0800
2018-2-13 17:23:3 +0800
Win10 UWP

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

.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

最新文章

  1. 【干货分享】流程DEMO-费用报销
  2. 一起买Beta版本系列文档
  3. Ajax原生写法
  4. Android 杀死进程
  5. tomcat中server.xml文件解析
  6. 【CSS】Beginner1:Applying CSS
  7. works-er
  8. UILabel的size根据文字的长短变化
  9. SQL Server两种分页的存储过程介绍
  10. 事件拦截,仿qq侧拉的操作中
  11. 深入理解JVM(三)——配置参数
  12. windows免费?linux免费?赶紧过来看吧
  13. ubuntu only enable left click
  14. Java中的getGenericSuperclass的基本用法
  15. JSP本质的理解(浏览器调试,response里面的文本都是out.write写入网络流)
  16. Dubbo 服务容错Hystrix
  17. linux内核中hlist_head和hlist_node结构解析
  18. day38
  19. Linux Web服务器网站故障分析常用的命令
  20. P3275 [SCOI2011]糖果 && 差分约束(二)

热门文章

  1. VUE的双向绑定及局部组件的使用
  2. frugally-deep: Header-only library for using Keras models in C++
  3. Linux g++ 编译添加 pthread
  4. 多边形面积计算公式 GPS经纬度计算面积
  5. Git关联JIRA的issue
  6. Java 输入输出图片文件的简单方式
  7. 父工程 pom版本
  8. 【HDOJ6685】Rikka with Coin(DP)
  9. Type Interceptors
  10. edusoho迁移