当前位置: 首页 > news >正文

C# Winform序列化和反序列化

在NET Framework 4.7.2中不能用Newtonsoft.Json进行序列化和反序列化,为解决此问题,采用System.Text.Json进行序列化,注意要添加System.Memory的引用。
1、创建测试类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace AutoTestClientApp.Models
{public class CmdNode{public string Name { get; set; } = string.Empty;public int CmdWord { get; set; } = 0;public int Direction { get; set; } = 0;public object Data { get; set; } = 0;public bool Compare(CmdNode other){if (Name.Equals(other.Name) && CmdWord == other.CmdWord && Direction == other.Direction && Data.Equals(other.Data)){return true;}return false;}}
}

2、应用测试

//实例化类并赋值CmdNode cmdNode = new CmdNode();cmdNode.Name = "序列化测试";cmdNode.CmdWord = 0x10;cmdNode.Direction = 1;List<string> list = new List<string>();list.Add("12");list.Add("34");cmdNode.Data = list;//实例序列化string str = System.Text.Json.JsonSerializer.Serialize(cmdNode);Console.WriteLine(str);//实例反序列化CmdNode cmdNode1 = System.Text.Json.JsonSerializer.Deserialize<CmdNode>(str);bool flag = cmdNode1.Compare(cmdNode);Console.WriteLine($"粗略比较结果:{flag}");

3、运行结果
在这里插入图片描述
在这里插入图片描述
4、问题分析
反序列化后不相等的原因在于对象类型比较的不完善。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 矩阵的导数运算
  • 如何用Python进行数据可视化、科技图表绘制?
  • 【c++刷题笔记-图论】day62:Floyd 算法、A * 算法精讲
  • 从0开始搭建vue + flask 旅游景点数据分析系统(七):可视化前后端对接实现
  • 【超音速专利 CN109636858A】锂电池涂布图像采集标定方法、系统、设备及存储介质
  • Pod的调度机制
  • 深入探索 Wireshark——网络封包分析的利器
  • yolov8人脸识别案例
  • 设计模式 - 单例模式
  • 密码学基本理论
  • pnpm -C 什么意思
  • 量化投资策略与技术学习PART2:量化选股之风格轮动
  • Docker深入讲解
  • IOS企业IPA软件证书 苹果签名证书 有效期到2026年
  • VMware ESXi学习笔记
  • [PHP内核探索]PHP中的哈希表
  • 自己简单写的 事件订阅机制
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 30秒的PHP代码片段(1)数组 - Array
  • Apache Pulsar 2.1 重磅发布
  • Asm.js的简单介绍
  • axios 和 cookie 的那些事
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS 三角实现
  • go语言学习初探(一)
  • js数组之filter
  • js中forEach回调同异步问题
  • Octave 入门
  • pdf文件如何在线转换为jpg图片
  • PHP 7 修改了什么呢 -- 2
  • Ruby 2.x 源代码分析:扩展 概述
  • Spark学习笔记之相关记录
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 安卓应用性能调试和优化经验分享
  • 反思总结然后整装待发
  • 服务器从安装到部署全过程(二)
  • 使用 Docker 部署 Spring Boot项目
  • 学习Vue.js的五个小例子
  • 用mpvue开发微信小程序
  • 终端用户监控:真实用户监控还是模拟监控?
  • # centos7下FFmpeg环境部署记录
  • $.each()与$(selector).each()
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (11)MATLAB PCA+SVM 人脸识别
  • (java)关于Thread的挂起和恢复
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (一)UDP基本编程步骤
  • (一)WLAN定义和基本架构转
  • (转)Scala的“=”符号简介
  • (转载)Linux 多线程条件变量同步
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 将实体类转换为 SQL(ORM 映射)