gpt4 book ai didi

c# - .NET 二进制序列化元数据

转载 作者:太空狗 更新时间:2023-10-29 21:34:20 26 4
gpt4 key购买 nike

一周前,我遇到了一种情况,我不得不读取由其他人制作的另一个应用程序制作的二进制序列化对象。我只有 someSerializedData.bin 文件,所以我尝试为未知对象手动重新创建类定义,并且由于序列化文件中的元数据,我能够这样做。奇怪的是,我在谷歌上找不到任何工具。

Q1:为什么没有工具可以从二进制序列化文件/数据重新创建类定义?

这引出了我的第二个问题

Q2:是否存在无法从序列化数据中恢复类定义的情况? (假设它没有以任何方式加密或混淆,我对涉及“默认”.NET Binaryserializer 属性的情况感兴趣,以禁用类型信息和包含的元数据)

最佳答案

在不知道其中内容的情况下反序列化二进制数据是不可能的。做到这一点的唯一方法是使用 JSON 或 XML 等对其进行序列化。举例说明:

你的名字“Casual”可以这样序列化:67,97,115,117,97,108。如果您没有注意到:这是使用 ASCII 编码完成的(如果我没有犯任何错误)。现在,假设您不知道这是用 ASCII 完成的,谁说这不仅仅是一个数字数组?还是 2 个数字的 3 个数组?或者一个 ID 为 67 的对象和一个 ID 为 117 的对象。没人知道,所以你的任务是不可能完成的。

唯一的选择是与最初序列化它的人沟通并询问他/她这是如何完成的以及在这个二进制对象中序列化了哪些对象。

亲切的问候

关于c# - .NET 二进制序列化元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18238490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com