Là kết quả của MyClass
trỏ đến một loại giao diện, sau đó có thể chứa bất kỳ lớp nào 'Bson triển khai giao diện đó, chúng ta phải cho MongoDB biết loại lớp' có thể ở cuối (tất cả) giao diện đó. Sau đó, nó có thể suy ra từ các lớp mà nó biết cách giải mã BsonDocuments
nhất định chứa những lớp 'Bson.
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>();
}
Bằng cách thêm lớp MyIntImpl
đối với BsonClassMap, giờ đây nó biết cách giải mã hóa Bson khỏi loại lớp đó. Bạn chỉ cần đảm bảo rằng bạn giữ cho bản đồ chứa đầy các lớp triển khai các giao diện mà bạn có thể tuần tự hóa.
Một số liên kết tham khảo: Cấp cao đến cấp thấp tổng quan về tuần tự hóa C # MongoDB , một bài đăng SO phác thảo giải pháp.