c# - BinaryFormatter 字节顺序

标签 c# endianness binaryformatter

我们使用 BinaryFormatter 将对象序列化为 NetworkStream 并通过 TCP 套接字传输它们。

我只是想弄清楚字节序是固定的还是系统相关的。

我知道 BinaryWriter 始终使用 LittleEndian,我试图为 BinaryFormatter 找到相同类型的信息。

最佳答案

BinaryFormatter 使用内部 __BinaryParser 类来处理字节解码。看看它的ReadInt16() method作为具有字节序依赖性的一个。单击“dataReader”可以看到它只是一个完成该工作的 BinaryReader。

BinaryReader 始终使用小端字节序,无论系统默认值如何。

同样的情况也适用于 __BinaryWriter.WriteInt16(),BinaryFormatter 用于写入 Int16 的内部方法,使用 BinaryWriter。请注意,您永远不会实际测试这一点,唯一可以执行 C# 代码的重要大端主机是旧版 XBox 360。它不支持 System.Net

关于c# - BinaryFormatter 字节顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966120/

相关文章:

c++ - 测试 C++ 代码的字节序无关性

struct - 确保 D rawRead() 是文件中的大端结构

c# - 跨 AppDomain 的自定义序列化

c# - 有条件的 AddWithValue 作为单行

c# - Word 2007 为操作形状但在 Word 2010 中正常工作的互操作代码引发异常

c# - FTP over SSL 问题

assembly - 读取奇数地址,半个字?

c# - BinaryFormatter 对象图升级

c# - 扩展其 GetObjectData 方法未标记为虚拟的类时的序列化

c# - 转换、泛型和子类型