Драйверът трябва да знае за всички дискриминатори, за да десериализира всеки клас без грешки. Има два начина да го направите:
1. Регистрирайте го глобално по време на стартиране на приложението:
BsonClassMap.RegisterClassMap<Type1>();
BsonClassMap.RegisterClassMap<Type2>();
2.Или чрез BsonKnownTypes атрибут:
[BsonKnownTypes(typeof(Type1), typeof(Type2)]
public class BaseType
{
}
Ако използвате #1 или #2, вашата десериализация ще работи правилно.