Bem, eu encontrei muitos problemas ao tentar obter esta resposta.
Em primeiro lugar, o driver MongoDB C# tem alguns problemas ao desserializar interfaces , como dito por Craig Wilson nos comentários desta pergunta e conforme descrito na página do problema .
A implementação segura para este problema, como eu disse antes, realmente pode ser um serializador BSON personalizado ou um mapa de classe específico, usando
BsonClassMap.RegisterClassMap
. Então, eu implementei o mapa de classes e o problema persistiu.
Olhando para o futuro com o problema, descobri que a exceção está relacionada a outro problema do driver:o problema ao desserializar
structs
. Eu reverti o projeto para o estado inicial (sem mapa de classes ou serializadores personalizados) e alterei o tipo de estrutura para o tipo de classe, e funcionou .
Em resumo, esse erro de exceção está relacionado à desserialização de structs, não à desserialização de interfaces.
De qualquer forma, é um problema real, e o segundo problema precisa ser considerado mais um bug do que uma melhoria, como o primeiro problema.
Você pode encontrar os problemas nestes links: