J'utilise ninject sur une nouvelle application web et il y a deux choses qui ne sont pas claires pour moi:NInject: Où gardez-vous votre référence au noyau?
Ne ai-je besoin de garder une référence au noyau autour (Session/Variable App) à Assurez-vous que GC ne rassemble pas toutes mes instances? Par exemple, si je spécifie .Using() et que l'objet Kernel est collecté, tous mes "singletons" ne sont-ils pas également collectés?
Si j'ai besoin de garder une référence à un objet noyau, comment puis-je permettre que les arguments passés à WithArguments() changent ou est-ce impossible?
Je suis d'accord Je ne veux pas passer le conteneur, mais pourrais-je le stocker dans une variable Application par exemple? Mon problème est que chaque fois que je fais un nouveau StandardKernel (new CustomModule()), j'obtiens de nouvelles instances de tout. –
Vous n'avez besoin que d'un seul StandardKernel par application. Si vous avez besoin de charger plusieurs modules, appelez simplement kernel.Load (new MyModule()); kernel.Load (nouveau AnotherModule()); etc –
Ok, donc cela a du sens. Ce que je dois faire est de changer les arguments dans WithArguments() chaque fois que je demande un type ... est-il possible de le faire? En fin de compte ce que j'essaie de faire est d'implémenter un OnePerSessionBehavior et je veux que la liaison injecte les arguments actuels pour chaque session. –