C# 中的 MFC 对象序列化

Posted

技术标签:

【中文标题】C# 中的 MFC 对象序列化【英文标题】:MFC Object serialization in C# 【发布时间】:2013-07-30 05:36:00 【问题描述】:

我正在尝试读取 C# 中的二进制文件,该文件实际上是使用 CArchive 编写的。我已经完成了大部分工作,但一直在阅读一个对象。而不是写bool,int,double对象已经写成二进制了。

http://msdn.microsoft.com/en-us/library/3bfsbt0t(v=vs.110).aspx

原来的代码是这样的。

MyClass myObject;
if (archive.IsStoring()
    archive << myObject;
else
    archive >> myOjbect;

所以问题是如何在 C# 中翻译这段代码。

void Read(BinaryReader reader)

    // Read MyClass object here.

【问题讨论】:

【参考方案1】:

您需要创建一个类似的 C# 对象(您可能想要使用 C++/CLI)并从文件中构造它。

如果您指定 myObject 是什么会有所帮助。

【讨论】:

我没听懂。你能详细说明一下吗? 我已经尝试了更多调试,当编写对象序列化方法被调用并且它写入 int 时,它会加倍。但是在阅读时,它并没有按顺序阅读。我跳过了一些字节,然后尝试读取,它起作用了。看起来存档 >> myObject 写了一些额外的东西(我猜是类名)。 嗨@fhnaseer,我还将 MFC 序列化转换为 C#。你是如何弄清楚数据是如何保存的,并通过 CArchive 读取的。

以上是关于C# 中的 MFC 对象序列化的主要内容,如果未能解决你的问题,请参考以下文章

Qt持久性对象进行序列化

C# 使用对象列表中的对象反序列化 JSON - 但无法访问它

在 C# 序列化中,我需要序列化引用其他 DLL 中的对象而没有源代码的对象

在 MFC 中序列化 CTypedPtrList 不会将数据保存在列表中

如何将 XML 反序列化为 C# 中的对象? [复制]

MFC学习一 MFC基础类及其层次结构