【发布时间】:2017-06-16 10:01:42
【问题描述】:
所以我深入研究了使用二进制格式化程序对数据进行序列化,对此我印象深刻。但问题是兼容性。我希望我的序列化数据是可移植的,因此可以被不同的平台访问。所以 XML 序列化似乎是答案,但生成的文件太大,不需要人类可读性。
所以我考虑创建自己的编码/序列化系统,以便我可以将一个 long[] 数组和一个包含十六进制值的 string[]/List<string> 写入文件。
我考虑将所有数组转换为 byte[],但我不确定是否应该关注字符文本编码。我只打算对包含十六进制和长值的数组进行序列化/编码。
byte[] Bytes = HexArray.Select(s => Convert.ToByte(s, 16)).ToArray();
将所有数组转换为 byte[] 后,我可以将它们写入文件,同时记下各个数组的字节偏移量,以便可以恢复它们。
有什么更好的方法来做到这一点吗?我真的不想求助于 XML。希望 BinaryFormatter 是可移植的。这必须是跨平台的,所以它不会受到字节序的影响
【问题讨论】:
-
二进制数据是可移植的,所以我不知道您的担忧是什么。二进制文件将是最紧凑和最快的发送方式。
标签: c# arrays xml serialization