在 C 中从 BinaryFormatter 反序列化数据的唯一方法是调用 .net 框架并使用 BinaryFormatter。
但这确实不是通过网络传输数据的最佳方式。BinaryFormatter 速度慢、不安全且脆弱。两个 .net 版本之间的格式甚至可能会发生变化。
更好的方法是使用用于不同系统之间通信的序列化格式。我使用 Protobuf .net 取得了良好的结果,C 应该有一些 protobuf 实现。BSON、json/xml 等基于文本的格式也可能是替代方案。
如果您正在编写“性能密集型”应用程序,那么在选择库之前查看一些基准测试或进行自己的性能测试可能是个好主意。在我见过的基准测试中,BinaryFormatter 通常是最慢的替代方案,因此如果您担心性能,它不是一个好的选择。我使用它的唯一原因是从某些遗留系统读取数据。