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 对象序列化的主要内容,如果未能解决你的问题,请参考以下文章
C# 使用对象列表中的对象反序列化 JSON - 但无法访问它
在 C# 序列化中,我需要序列化引用其他 DLL 中的对象而没有源代码的对象