Le pilote doit connaître tous les discriminateurs pour désérialiser n'importe quelle classe sans erreur. Il y a deux façons de le faire :
1. Enregistrez-le globalement au démarrage de l'application :
BsonClassMap.RegisterClassMap<Type1>();
BsonClassMap.RegisterClassMap<Type2>();
2. Ou via les BsonKnownTypes attribut :
[BsonKnownTypes(typeof(Type1), typeof(Type2)]
public class BaseType
{
}
Si vous utilisez #1 ou #2, votre désérialisation fonctionnera correctement.