MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment détecter si un sérialiseur mongodb est déjà enregistré ?

TL;DR : Si vous êtes paresseux, utilisez BsonSerializer.LookupSerializer ou BsonMemberMap.GetSerializer . Pour faire les choses correctement , assurez-vous que le code d'enregistrement est appelé une seule fois .

La meilleure approche pour éviter cela est de s'assurer que le sérialiseur n'est enregistré qu'une seule fois. C'est une bonne idée d'avoir un code de démarrage global qui enregistre tout ce qui est global pour l'application une fois, et une seule fois. Cela inclut des éléments tels que la configuration de l'injecteur de dépendances, des outils tels que l'automapper et le pilote mongodb. Si vous appelez ce code une seule fois et à partir d'un seul point dans le code, vous n'avez pas à vous soucier de la sécurité des threads, des blocages ou des problèmes similaires.

Les paramètres de configuration du pilote MongoDB sont thread-safe, mais ne présumez pas que cela est vrai pour tous les packages logiciels que vous pourriez avoir besoin de configurer. De plus, le verrouillage peut être très coûteux en termes de performances si votre code est multi-thread, par exemple dans une application Web. Enfin et surtout, la recherche que vous effectuez n'est peut-être pas triviale, car certaines méthodes doivent parcourir tout un arbre d'héritage.