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