Dans la documentation officielle
il est indiqué que MongoServer , MongoDatabase , et MongoCollection sont thread-safe, et que vous êtes censé créer un seul MongoServer pour chaque base de données à laquelle vous vous connectez.
Ainsi, MongoServer , MongoDatabase , et MongoCollection peuvent être configurés en toute sécurité pour être des singletons. MongoServer aidera même à faire respecter cela en retournant le même MongoDatabase instance pour les appels successifs, et MongoDatabase fera la même chose pour MongoCollection s.
C'est à dire. votre MongoServer l'instance peut être configurée en toute sécurité pour avoir un style de vie singleton dans votre conteneur IoC, et vous pouvez tout aussi bien configurer l'injection pour MongoDatabase et peut-être même MongoCollection aussi bien.
J'utilise moi-même cette stratégie avec Windsor - vous pouvez voir mon MongoInstaller ici :https://gist.github.com/2427676
- cela permet à mes cours d'aller de l'avant et de faire ceci :
public class SomeClass
{
public SomeClass(MongoCollection<Person> people)
{ ... }
}
afin d'avoir une collection injectée, belle et prête à l'emploi.