MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Desserialize o objeto como uma interface com o driver MongoDB C#


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: