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

Come faccio a rilevare se un serializzatore mongodb è già registrato?

TL;DR: Se sei pigro, usa BsonSerializer.LookupSerializer o BsonMemberMap.GetSerializer . Per farlo bene , assicurati che il codice di registrazione venga chiamato una sola volta .

L'approccio migliore per evitare ciò è assicurarsi che il serializzatore sia registrato una sola volta. È una buona idea disporre di un codice di avvio globale che registri tutto ciò che è globale nell'applicazione una volta e solo una volta. Ciò include cose come la configurazione dell'iniettore di dipendenza, strumenti come automapper e il driver mongodb. Se chiami questo codice solo una volta e da un unico punto nel codice, non devi preoccuparti di thread safety, dead lock o problemi simili.

Le impostazioni di configurazione del driver MongoDB sono thread-safe, ma non dare per scontato che ciò sia vero per tutti i pacchetti software che potrebbe essere necessario configurare. Inoltre, il blocco può essere molto costoso dal punto di vista delle prestazioni se il tuo codice è multi-thread, ad esempio in un'applicazione web. Ultimo ma non meno importante, la ricerca che stai facendo potrebbe non essere banale in primo luogo, perché alcuni metodi devono percorrere un intero albero dell'eredità.