C#中将一个类对象序列化后得到二进制内容,如何在另一个C#代码中反序列化出原来对象的内容?

我得到了一段由C#序列化后的二进制数据,但是我并没有这段数据的原始类代码,如何反序列化出二进制的原始代码。

[Serializable]
public class MyObject
{
     public int m2 = 0x12; public int[,,] m_word_def = new int[2, 3, 2];
}
MyObject obj = new MyObject();
FileStream fileStream = new FileStream(sfile, FileMode.Create, FileAccess.ReadWrite);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fileStream, obj);

就像上面的例子,我得到了一个序列化后的二进制文件,这个时候如果我反序列化,并不能得到序列化之前的数据

IFormatter formatter = new BinaryFormatter();
MemoryStream serializationStream = new MemoryStream(savebin);
Object data = null;
data = (Object)formatter.Deserialize(serializationStream);

因为这里的代码不知道MyObject这个类结构,所以这里会报错误,有什么方法能在不知道类结构的情况下获得反序列化后的结果

阅读 842
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进