1

最近、MongoDB の公式 C# ドライバーを使用して MongoDB の作業を開始しました。次のクラス/インターフェイス定義があります。

public interface IDependent {
   int Index { get; set; }
   string Name { get; set; }
}

public class Person {
   int Id { get; set; }
   string Name {get; set; }
   IDependent[] Dependents { get; set; }
}
public class Dependent : IDependent {
    int Index {get; set; }
    string Name { get; set; }
}

このクラス/インターフェイス構造を使用すると、IDependent の配列を含む Person レコードを挿入できます。しかし、Person オブジェクトを取得しようとすると、mongoDB C# ドライバーが「IDependent の不明な識別子」と文句を言います。

私の理解が正しければ、デシリアライザーは Dependents 配列の各要素に対してインスタンスを作成する必要があるクラスの型を特定できません。

IDependent のクラス タイプが Dependent であることをマップして、mongoDB ドライバーが適切に逆シリアル化できるようにするにはどうすればよいですか?

4

1 に答える 1

1

私はこれを理解しました。私がしなければならなかったのは、依存クラスを登録することだけで、それは次のように機能します

BsonClassMap.RegisterClassMap<Dependent>();
于 2013-11-14T06:22:18.633 に答える