私は基本クラスを持っていると仮定します
public class Node{
public ObjectId Id;
public String nodeName;
public ObjectId parentNode;
}
および 2 つの派生クラス
public class PlotNode:Node{
public ObjectId Id;
public String plotDetail;
}
public class EndNode:Node{
public ObjectId Id;
public int resultCode;
}
3 つのクラスすべてのいくつかのオブジェクトがシリアル化され、データベースにあります。
そして、私が持っている唯一のデータは ObjectId のリストであり、これらの ID についてわかっていることは、それらがノード ID であることが確実であるということだけですが、逆シリアル化時に Node、PlotNode、または EndNode であるかどうかはわかりません。
これを使用して逆シリアル化しています:
var collection = db.GetCollection<Node>("nodes");
var query = Query<Node>.EQ(e => e.Id, id);
Node node = collection.FindOne(query);
そして最後に、実際の PlotNodes や EndNodes ではなく、Nodes を取得します。
それらが派生型の 1 つであるかどうかを知り、その型のオブジェクトを取得するにはどうすればよいですか?