Я хочу десериализовать объект, но не знаю класс спереди. Итак, рассмотрим следующий код ...C# BinaryFormatter - Как узнать класс двоичных данных?
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
MyObject obj = (MyObject)formatter.Deserialize(stream);
Что мне делать, если я не знаю класс спереди? Скажем, например, «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);