和很多序列化库一样,可以通过 MessagePack 序列化和反序列化,和 json 相比这个库提供了二进制的序列化,序列化之后的内容长度比 json 小很多
这个库能序列的内容不多,大多数时候建议使用的序列的类都是只有基础的 int 和 bool 字符串等,最好不要存在复杂的类
使用 MessagePack 的好处只是序列化出来的内容的长度小,但是从性能等方面,其实和 Json 差别不大,在序列化简单的类的时候,可以看到 MessagePack 的序列化速度会比较快。在序列化比较大的类如果序列化到文件,那么因为文件读写的性能,可以看到 MessagePack 的性能明显比 json 好。
在使用 MessagePack 之前需要通过 Nuget 安装
安装方法是在 Nuget 输入 MessagePack 安装
下面写一个简单的方法,将会对这个类序列化
现在主函数创建这个类
通过 MessagePackSerializer.Serialize 方法可以将一个类序列化为 byte 数组,或序列化到 stream 也就是可以直接序列化到文件
如果想要看 byteList 的内容,可以使用下面方法将 byte 数组转字符串
使用下面代码可以反序列化
我尝试运行代码,可以看到下面代码
前面是将 Foo 序列化的二进制
如果在使用的时候发现下面代码,那么很多时候都是因为没有在类上面添加特性,需要修改类为公开的,然后在类上面添加 MessagePackObject
特性,然后在每个公开属性上面添加 Key
特性,同时输入这个属性是在哪个顺序
github:msgpack/msgpack-cli
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。