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.