sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo detecto si un serializador mongodb ya está registrado?

TL;RD: Si eres perezoso, usa BsonSerializer.LookupSerializer o BsonMemberMap.GetSerializer . Para hacerlo bien , asegúrese de que el código de registro se llame una vez y solo una vez .

El mejor enfoque para evitar esto es asegurarse de que el serializador se registre solo una vez. Es una buena idea tener algún código de inicio global que registre cualquier cosa que sea global para la aplicación una vez, y solo una vez. Eso incluye cosas como la configuración del inyector de dependencia, herramientas como automapper y el controlador mongodb. Si llama a este código solo una vez y desde un solo punto en el código, no necesita preocuparse por la seguridad de subprocesos, bloqueos o problemas similares.

Los ajustes de configuración del controlador MongoDB son seguros para subprocesos, pero no asuma que esto es cierto para todos los paquetes de software que pueda necesitar configurar. Además, el bloqueo puede ser muy caro en cuanto al rendimiento si su código tiene varios subprocesos, por ejemplo, en una aplicación web. Por último, pero no menos importante, la búsqueda que está haciendo puede no ser trivial en primer lugar, porque algunos métodos necesitan recorrer un árbol de herencia completo.