当前位置: 首页 > 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、问题分析
反序列化后不相等的原因在于对象类型比较的不完善。

http://www.lryc.cn/news/421165.html

相关文章:

  • crc原理概述
  • C++要求或禁止在堆中产生对象
  • 为什么阿里开发手册推荐用静态工厂方法代替构造器?
  • 前端写法建议【让项目更加易于维护】
  • EasyExcel 自定义转换器、自定义导出字典映射替换、满足条件内容增加样式,完整代码+详细注释说明
  • C语言学习笔记 Day10(指针--中)
  • 网页显示打印 pdf
  • 1948-2024.5金融许可信息明细数据
  • 【笔记】从零开始做一个精灵龙女-画贴图阶段(终)
  • 从MySQL到Elasticsearch:创建酒店索引案例
  • Webkit与Web Push API:提升用户体验的推送技术
  • Java线程池的拒绝策略
  • 【C++进阶】继承
  • 立体相机镜面重建(一)镜面标定
  • 【如何有效解决前端Vue中的常见难题】
  • CLAMP-1靶机渗透测试
  • JavaScript中的Truthy Falsy值以及等号判断
  • uniapp——展开和收起
  • WebGL2学习(2): GLSL ES 3.0
  • [大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型
  • 驱动开发系列09 - Linux设备模型之设备,驱动和总线
  • HTML实现弹出层
  • Android控件详解
  • 记忆化搜索专题篇
  • 入网测评检查项大全(安全资料)
  • uni-app 开发App时调用uni-push 实现在线系统消息推送通知 保姆教程
  • 13.StringRedisTemplete使用
  • [工具]-gitee+pycharm-配置
  • 中间件是一种在客户端和服务器之间进行通信和处理的软件组件或服务
  • RCE-eval长度限制突破技巧