Sebagai hasil dari MyClass
menunjuk ke jenis antarmuka, yang kemudian dapat menampung Bson kelas mana pun yang mengimplementasikan antarmuka itu, kita harus memberi tahu MongoDB jenis kelas 'yang dapat di akhir (semua) antarmuka itu. Ia kemudian dapat menyimpulkan dari kelas-kelas yang ia ketahui tentang cara menghapus serial BsonDocuments
tertentu berisi Bson kelas tersebut.
public interface IMyInterface
{
String Name { get; set; }
}
public class MyIntImpl : IMyInterface
{
public String Name { get; set; }
}
public class MyClass
{
public IMyInterface IntRef { get; set; }
public MyClass()
{
IntRef = new MyIntImpl();
}
}
// When starting up MongoDB
private void RegisterClasses()
{
BsonClassMap.RegisterClassMap<MyIntImpl>();
}
Dengan menambahkan kelas MyIntImpl
ke BsonClassMap sekarang tahu cara deserialize Bson dari tipe kelas itu. Anda hanya perlu memastikan bahwa peta tetap diisi dengan kelas-kelas yang mengimplementasikan antarmuka yang mungkin Anda buat bersambung.
Beberapa tautan referensi:Tingkat tinggi ke rendah gambaran umum serialisasi C# MongoDB , postingan SO yang menguraikan solusinya.