跨语言(java 和 c#)对象序列化的策略

2022-09-03 09:04:53

我正在处理一个项目,我需要在java 6应用程序中序列化一些数据,并将其反序列化为c# 2.0应用程序。有没有一种策略或已经存在的东西,我可以看看,允许我用这两种语言做到这一点?我猜它们都支持XML序列化,但我真的需要它来二进制序列化。


答案 1

协议缓冲区在这里是一个不错的选择。在C#方面,我会推荐Jon Skeet的dotnet-protobufs用于此用例,因为它在两端具有相同的API(他的C#版本是Google Java版本的移植,是核心发行版的一部分)。如果你想让C#更“典型的.NET”,那么protobuf-net可能会有所帮助。

(版本之间的连线格式明显相同;API可能会有所不同)

小巧、快速、高效、便携

有关信息,我知道protobuf-net具有.NET 2.0支持;老实说,我还没有在Jon的版本中尝试过这个,但我希望它会 - 在protobuf中你不需要3.0 / 3.5。


答案 2

协议缓冲区谷歌网站))

Java 教程

Jon Skeet 的 C# Port

Marc Gravell 的 C# Port

优点:速度很快,你可以在SO上bug很多参与这件事的人。;-)

让我利用Marc的项目网站:性能是完全可以接受的