sql >> Databáze >  >> NoSQL >> MongoDB

Deserializujte objekt jako rozhraní pomocí MongoDB C# Driver

Při pokusu o získání této odpovědi jsem našel spoustu problémů.

Za prvé, MongoDB C# Driver má určité problémy při deserializaci rozhraní , jak řekl Craig Wilson v komentářích k této otázce a jak je popsáno na stránce problému .

Bezpečnou implementací tohoto problému, jak jsem již řekl dříve, může být ve skutečnosti vlastní serializátor BSON nebo konkrétní mapa tříd pomocí BsonClassMap.RegisterClassMap .

Implementoval jsem tedy mapu tříd a problém přetrvává.

Když se na problém těším, zjistil jsem, že výjimka souvisí s jiným problémem ovladače:problémem při deserializaci structs .

Vrátil jsem projekt do počátečního stavu (bez mapy tříd nebo vlastních serializátorů) a změnil typ struktury na typ třídy, a fungovalo to .

V resumé se tato chyba výjimky týká deserializace struktur, nikoli deserializace rozhraní.

Každopádně je to skutečný problém a druhý problém je třeba považovat spíše za chybu než za vylepšení, jako je ten první.

Problémy můžete najít na těchto odkazech:



  1. Najděte celkový čas strávený uživatelem v mongoDB

  2. Výjimka MongoCursorTimeout pro agregační funkci

  3. Jak uložit a načíst slovník pomocí redis

  4. Rady ohledně migrace z MongoMapper na Mongoid?