全て
次の例を検討してください。
private class CollectionHolder
{
public ObjectId Id { get; set; }
public MyCollection Collection { get; set; }
}
private class MyCollection : List<int>
{
public MyCollection(List<int> a)
{
this.AddRange(a);
}
}
private static void CollectionTest()
{
var collection = database.GetCollection<MyCollection>("collectionTest");
collection.RemoveAll();
collection.Save(new CollectionHolder { Collection = new MyCollection(new List<int> { 1, 2, 3, 4, 5 }) });
var x = collection.AsQueryable().First(); //exception!
x.ForEach(Console.WriteLine);
}
マークされた行は例外をスローします
クラス MongoDriverTest.Program+CollectionHolder の Collection プロパティの逆シリアル化中にエラーが発生しました: クラス MongoDriverTest.Program+MyCollection の Capacity プロパティの逆シリアル化中にエラーが発生しました: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
よくわかりませんが、これは 10gen mongo ドライバーのバグですか、それとも実装が不可能ですか? これはバグとして投稿する必要があると思いますか?
さらに、この種のエラーを回避する最善の方法は何ですか?