オブジェクトをデシリアライズしたいのですが、事前にクラスがわかりません。したがって、次のコードを検討してください...
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);