W oficjalnej dokumentacji
stwierdza się, że MongoServer , MongoDatabase i MongoCollection są bezpieczne wątkowo i powinieneś utworzyć jeden MongoServer dla każdej bazy danych, z którą się łączysz.
Tak więc MongoServer , MongoDatabase i MongoCollection można bezpiecznie skonfigurować jako singletony. MongoServer pomoże nawet wyegzekwować to, zwracając tę samą MongoDatabase przykład dla kolejnych wywołań i MongoDatabase zrobi to samo dla MongoCollection s.
Tj. Twój MongoServer instancję można bezpiecznie skonfigurować tak, aby miała singletonowy styl życia w kontenerze IoC, i równie dobrze można skonfigurować wstrzyknięcie dla MongoDatabase a może nawet MongoCollection również.
Sam używam tej strategii z Windsorem - możesz zobaczyć mój MongoInstaller tutaj:https://gist.github.com/2427676
- pozwala moim klasom po prostu iść dalej i robić to:
public class SomeClass
{
public SomeClass(MongoCollection<Person> people)
{ ... }
}
aby mieć wstrzykniętą kolekcję, ładną i gotową do użycia.