MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como faço para detectar se um serializador mongodb já está registrado?


TL;DR: Ig você é preguiçoso, use BsonSerializer.LookupSerializer ou BsonMemberMap.GetSerializer . Para fazer certo , certifique-se de que o código de registro seja chamado uma vez e apenas uma vez .

A melhor abordagem para evitar isso é garantir que o serializador seja registrado apenas uma vez. É uma boa ideia ter algum código de inicialização global que registre qualquer coisa que seja global para o aplicativo uma vez, e apenas uma vez. Isso inclui coisas como configuração do injetor de dependência, ferramentas como automapper e o driver mongodb. Se você chamar esse código apenas uma vez e de um único ponto no código, não precisará se preocupar com segurança de thread, dead locks ou problemas semelhantes.

As definições de configuração do driver MongoDB são thread-safe, mas não presuma que isso seja verdade para todos os pacotes de software que você pode precisar configurar. Além disso, o bloqueio pode ser muito caro em termos de desempenho se seu código for multi-thread, por exemplo, em um aplicativo da web. Por último, mas não menos importante, essa pesquisa que você está fazendo pode não ser trivial em primeiro lugar, porque alguns métodos precisam percorrer uma árvore de herança inteira.