Tag: boost serialization

C ++和C#中的二进制序列化/反序列化

我正在开发一个分布式应用程序,它有两个组件。 一个用标准C ++编写( 不是托管C ++ ,在Linux平台上运行),另一个用C#编写。 两者都通过消息总线进行通信。 我有一种情况需要将对象从C ++传递到C#应用程序,为此我需要在C ++中序列化这些对象并在C#中对它们进行反序列化(类似于.NET中的编组/解组)。 我需要以二进制而不是XML(由于性能原因)执行此序列化。 我已经使用Boost.Serialization来实现这一点,当两端都是用C ++实现的,但现在我的一端有.NET应用程序, Boost.Serialization不是一个可行的解决方案。 我正在寻找一种解决方案,允许我跨C ++和.NET边界执行(反)序列化,即跨平台二进制序列化 。 我知道我可以在C ++ DLL中实现(de)序列化代码并在.NET应用程序中使用P/Invoke ,但我想保留它作为最后的手段。 另外,我想知道我是否使用像gzip这样的标准,这会有效吗? 除了gzip还有其他选择吗? 它们的优点/缺点是什么? 谢谢