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.