In la documentazione ufficiale
si afferma che MongoServer
, MongoDatabase
e MongoCollection
sono thread-safe e che dovresti creare un singolo MongoServer
per ogni database a cui ti connetti.
Pertanto, MongoServer
, MongoDatabase
e MongoCollection
può essere tranquillamente configurato per essere singleton. MongoServer
aiuterà anche a farlo rispettare restituendo lo stesso MongoDatabase
esempio per chiamate successive e MongoDatabase
farà la stessa cosa per MongoCollection
s.
Cioè. il tuo MongoServer
l'istanza può essere configurata in modo sicuro per avere uno stile di vita singleton nel tuo contenitore IoC e potresti anche impostare l'iniezione per MongoDatabase
e forse anche MongoCollection
anche.
Sto usando io stesso questa strategia con Windsor:puoi vedere il mio MongoInstaller
qui:https://gist.github.com/2427676
- permette alle mie lezioni di andare avanti e fare questo:
public class SomeClass
{
public SomeClass(MongoCollection<Person> people)
{ ... }
}
per avere una collezione iniettata, bella e pronta all'uso.