MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Deserializzare l'oggetto come interfaccia con MongoDB C# Driver

Bene, ho riscontrato molti problemi durante il tentativo di ottenere questa risposta.

Innanzitutto, il driver C# MongoDB presenta alcuni problemi durante la deserializzazione delle interfacce , come affermato da Craig Wilson nei commenti di questa domanda e come descritto nella la pagina del problema .

L'implementazione sicura per questo problema, come ho detto prima, potrebbe davvero essere un serializzatore BSON personalizzato o una mappa di classi specifica, utilizzando BsonClassMap.RegisterClassMap .

Quindi, ho implementato la mappa delle classi e il problema persiste.

Guardando avanti con il problema, ho riscontrato quella eccezione è correlata a un altro problema del driver:il problema durante la deserializzazione di structs .

Ho riportato il progetto allo stato iniziale (senza mappa delle classi o serializzatori personalizzati) e cambiato il tipo di struttura in tipo di classe, e ha funzionato .

In sintesi, questo errore di eccezione è correlato alla deserializzazione degli struct, non alla deserializzazione delle interfacce.

Ad ogni modo, è un problema reale e il secondo problema deve essere considerato più un bug che un miglioramento, come lo è il primo problema.

Puoi trovare i problemi a questi link: