有没有办法在 CLI 和 C# 之间序列化C++类

本文关键字:之间 序列化 C++ CLI 有没有 | 更新日期: 2023-09-27 18:36:53

我知道答案可能是否定的,但我想确定一下,因为这会给我省去很多麻烦。
解释一下:
我想要C++仅使用 .net 容器和常规整数、双精度的 CLI 类......我希望能够序列化该 CLI 类并将其反序列化为用 C# 编写的"相同"类。

有没有办法在 CLI 和 C# 之间序列化C++类

是的;可以使用任何 .Net 序列化机制。
(二进制,XML,数据合同等)

只要不使用任何非托管代码,用 C++/CLI 编写的托管类型和用 C# 编写的托管类型之间就没有根本区别。

请注意,.Net 二进制序列化不能在等效类型之间操作;若要使用二进制序列化,需要在库中定义类型,并从两个项目中引用该库。

我只会使用BinaryWriter手动序列化它,并使用BinaryReader来反序列化它。它不是自动的,因此如果更改类,则必须更新代码,但它的性能比任何动态序列化都要好。