所以我已经深入研究了使用Binary Formatter序列化数据,我对此印象深刻。但问题是兼容性。我希望我的序列化数据是可移植的,因此可以通过不同的平台访问。因此,XML序列化似乎就是答案,但生成的文件太大,不需要人类可读性。
所以我考虑创建自己的编码/序列化系统,以便我可以将long[]
数组和包含十六进制值的string[]/List<string>
写入文件。
我考虑过将所有数组转换为byte [],但我不确定是否应该关注字符文本编码。我只打算序列化/编码包含十六进制和长值的数组。
byte[] Bytes = HexArray.Select(s => Convert.ToByte(s, 16)).ToArray();
将所有数组转换为byte []后,我可以将它们写入文件,同时注意到各个数组的字节偏移量,以便可以恢复它们。
有关更好方法的任何想法吗?我真的不想诉诸XML。希望BinaryFormatter是便携式的。这必须跨平台,因此它不会受到字节序的影响
答案 0 :(得分:2)
您可能需要查看Protocol Buffers(protobuf):
一种语言中立,平台中立,可扩展的序列化结构化数据的方式,用于通信协议,数据存储等。
一些流行的C#库是: