In der offiziellen Dokumentation
Es wird angegeben, dass MongoServer
, MongoDatabase
, und MongoCollection
Thread-sicher sind und dass Sie einen einzigen MongoServer
erstellen sollten für jede Datenbank, mit der Sie sich verbinden.
Also MongoServer
, MongoDatabase
, und MongoCollection
können sicher als Singletons konfiguriert werden. MongoServer
wird sogar dabei helfen, dies durchzusetzen, indem dieselbe MongoDatabase
zurückgegeben wird Instanz für aufeinanderfolgende Aufrufe und MongoDatabase
wird dasselbe für MongoCollection
tun s.
Dh Ihr MongoServer
-Instanz kann sicher so konfiguriert werden, dass sie einen Singleton-Lebensstil in Ihrem IoC-Container hat, und Sie können genauso gut eine Injektion für MongoDatabase
einrichten und vielleicht sogar MongoCollection
auch.
Ich verwende diese Strategie selbst mit Windsor - Sie können meinen MongoInstaller
sehen hier:https://gist.github.com/2427676
- es erlaubt meinen Klassen, einfach weiterzumachen und dies zu tun:
public class SomeClass
{
public SomeClass(MongoCollection<Person> people)
{ ... }
}
um eine Sammlung injiziert zu haben, schön und gebrauchsfertig.