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.