C#BinaryFormatter - 如何找出二进制数据的类?

Sim*_*nro 2 c# binary serialization

我想反序列化一个对象,但不知道前面的类.所以,请考虑以下代码......

IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
MyObject obj = (MyObject)formatter.Deserialize(stream);
Run Code Online (Sandbox Code Playgroud)

如果我不了解课程,我该怎么办?比如说,例如"MyFile.bin"是MyObject或MyFoo.如何确定要实例化的对象?

就像是...

if (magic happens here == typeof(MyObject))  
    MyObject obj = (MyObject) formatter.Deserialize(stream);   
else if (more magic happens here == typeof(MyFoo))  
    MyFoo foo = (MyFoo)formatter.Deserialize(stream);
Run Code Online (Sandbox Code Playgroud)

lep*_*pie 7

做就是了:

object result = formatter.Deserialize(stream); 
Type t = result.GetType();
Run Code Online (Sandbox Code Playgroud)