I den officielle dokumentation
det er angivet, at MongoServer
, MongoDatabase
, og MongoCollection
er trådsikre, og at du formodes at oprette én enkelt MongoServer
for hver database, du opretter forbindelse til.
Således MongoServer
, MongoDatabase
, og MongoCollection
kan sikkert konfigureres til at være singletons. MongoServer
vil endda hjælpe med at håndhæve dette ved at returnere den samme MongoDatabase
instans for successive opkald og MongoDatabase
vil gøre det samme for MongoCollection
s.
dvs. din MongoServer
instans kan sikkert konfigureres til at have en singleton livsstil i din IoC container, og du kan lige så godt konfigurere injektion til MongoDatabase
og måske endda MongoCollection
såvel.
Jeg bruger selv denne strategi med Windsor - du kan se min MongoInstaller
her:https://gist.github.com/2427676
- det giver mine klasser mulighed for bare at gå videre og gøre dette:
public class SomeClass
{
public SomeClass(MongoCollection<Person> people)
{ ... }
}
for at få indsprøjtet en samling, pæn og klar til brug.