estoy usando ninject en una nueva aplicación web y hay dos cosas que no están claras para mí:NInject: ¿Dónde guarda su referencia al Kernel?
¿No necesito mantener una referencia al núcleo alrededor (Sesión/variable de la aplicación) a asegurarme de que GC no recopile todas mis instancias? Por ejemplo, si especifico .Using() y luego se recopila el objeto Kernel, ¿no se recogen también todos mis "singletons"?
Si necesito mantener una referencia a un objeto Kernel alrededor, ¿cómo puedo permitir que los argumentos pasados a WithArguments() cambien o no es posible?
Acepto que no quiero pasar el contenedor, pero ¿podría esconderlo en una variable de aplicación, por ejemplo? Mi problema es que cada vez que hago un nuevo StandardKernel (nuevo CustomModule()) obtengo nuevas instancias de todo. –
Solo necesita un StandardKernel por aplicación. Si necesita cargar múltiples módulos, simplemente llame a kernel.Load (new MyModule()); kernel.Load (new AnotherModule()); etc. –
Ok, entonces eso tiene sentido. Lo que tengo que hacer es cambiar los argumentos en WithArguments() cada vez que pido un tipo ... ¿hay alguna manera de hacer esto? En última instancia, lo que intento hacer es implementar un OnePerSessionBehavior y quiero que el enlace inyecte los argumentos actuales para cada sesión. –