我们使用BinaryFormatter将对象序列化为NetworkStream,并通过TCP Sockets传输它们。
我只是想知道Endiannes是固定的还是系统相关的。
我知道BinaryWriter总是使用LittleEndian,我一直在尝试为BinaryFormatter查找相同类型的信息。
发布于 2015-10-06 18:52:11
BinaryFormatter使用内部__BinaryParser类来处理字节解码。把它的ReadInt16() method看作是一个具有字节顺序依赖关系的its。单击"dataReader“可以看到完成这项工作的仅仅是一个BinaryReader。
无论系统默认值如何,BinaryReader始终使用小端。
BinaryFormatter用来编写Int16的内部方法__BinaryWriter.WriteInt16()也使用BinaryWriter。请注意,您永远不会实际测试这一点,唯一可以执行C#代码的非平凡的大端主机是旧的XBox 360。它不支持System.Net
发布于 2015-10-06 17:25:34
如果您将数据传递到另一个系统,这不是一个好主意。请阅读此处https://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter(v=vs.110).aspx。同样在这里:http://ambracode.com/index/show/244765
https://stackoverflow.com/questions/32966120
复制相似问题