Výsledkem je MyClass
když ukážeme na typ rozhraní, které by pak mohlo obsahovat jakoukoli třídu Bson, která implementuje toto rozhraní, musíme MongoDB sdělit typ třídy, která může na konci tohoto (všeho) rozhraní. Z tříd pak může odvodit, že ví, jak deserializovat určité BsonDocuments
obsahující tyto třídy' 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>();
}
Přidáním třídy MyIntImpl
do BsonClassMap nyní ví, jak deserializovat Bson z tohoto typu třídy. Jen se musíte ujistit, že udržujete mapu plnou tříd, které implementují rozhraní, která byste mohli serializovat.
Některé referenční odkazy:Vysoká až nízká úroveň přehled serializace C# MongoDB , příspěvek SO který nastiňuje řešení.