Tengo una aplicación Windows Forms con el siguiente código:rendimientos de inyección propiedad ninject nula
static void Main()
{
IKernel kernel = new StandardKernel(new MyModule());
TestInterface test = kernel.Get<TestInterface>();
}
Para el Module.Load() evento:
Bind<TestClass>().ToSelf().InSingletonScope();
Bind<TestInterface>().To<TestClass>();
En este punto test
en el Main()
método es el objeto adecuado que estoy esperando.
En una forma más adelante, estoy usando la inyección de la propiedad:
[Inject]
TestInterface test {get;set;}
Y una vez que se carga el formulario, tratando de trabajar con test
, pero es un objeto nulo.
¿Pensamientos?
Gracias Kevin, se soluciona el problema, pero creo que estoy después una solución mejor. Sigo leyendo sobre el "mal olor" de muchas inyecciones y llamadas, ya que no es cierto DI. Intento inyectar propiedades, ya que la inyección de constructores parece interferir cada vez que crea una instancia de un objeto. Tener una instancia del kernel también parece estar al revés? – mattdwen
Estoy de acuerdo: ¿no está pasando una instancia del kernel casi tan mal como pasar un montón de dependencias? –
No estoy seguro de qué otra cosa se podría lograr DI en ASP.NET ... solo hay tantos lugares que puede conectar a la canalización e inyectar sus dependencias. –