11

私は基本クラスを持っていると仮定します

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 つであるかどうかを知り、その型のオブジェクトを取得するにはどうすればよいですか?

4

1 に答える 1