gpt4 book ai didi

c# - 如何使用 BinaryReader 和 BinaryWriter 创建我自己的二进制序列化程序?

转载 作者:行者123 更新时间:2023-11-30 22:40:35 26 4
gpt4 key购买 nike

我基本上想创建自己的二进制序列化类,类似于 BinaryFormatter 类正在做的事情。我如何使用 BinaryReaderBinaryWriter 类来完成此操作。我不想要任何代码,只想要一个想法。谢谢。PS:请不要告诉我使用BinaryFormatter

最佳答案

最终,您需要为每种类型选择一种策略,然后切换到每种策略; BinaryWriter 具有写入 Int32、String 等的方法 - 因此基本方法是使用大量反射并在 te FieldInfo/PropertyInfo 的有效类型的 GetTypeCode 上切换。

就个人而言,完成此操作后,我实际上会避免 BinaryReader/Writer - 并直接进入 Stream(使用 float byte[] 缓冲区进行工作)。

更高级的是,您可以通过使用元编程为每个成员或每个类型预编译某些内容来减少反射量。

其他需要考虑的事情:

  • 你需要什么头数据(如果有的话)来标记每个数据字段
  • 你打算如何打包子对象/继承/列表

当然,两者都相当容易解决

关于c# - 如何使用 BinaryReader 和 BinaryWriter 创建我自己的二进制序列化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128243/

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