net – ¿Cuál es la mejor manera de construir una fábrica usando NInject?

Pregunta:

Me siento bastante cómodo con la inyección de dependencia usando NInject en MVC3. Mientras trabajaba en una aplicación MVC3, desarrollé una Fábrica de creación de controladores personalizada usando NInject, por lo que cualquier controlador que se cree tendrá dependencias inyectadas en él a través de esta Fábrica de controladores.

Ahora estoy empezando a desarrollar una aplicación de Windows, quiero usar la inyección de dependencia en toda la aplicación. es decir, cada objeto debe crearse a través de NInject, para facilitar las pruebas unitarias. Por favor, guíeme para asegurarme de que todos los objetos creados deben pasar únicamente por NInject Factory.

Por ejemplo, si en cualquier formulario de Windows en el evento Button_Click escribo:

TestClass testClass = new TestClass()

y TestClass tiene alguna dependencia de, digamos, ITest , entonces debe resolverse automáticamente. Sé que puedo usar:

Ikernel kernel = new StandardKenel()
//AddBinding()
TestClass testClass = kenel.get<TestClass>();

Pero me resulta tedioso hacer esto cada vez que quiero crear un objeto. También obliga al desarrollador a crear el objeto de una manera particular. ¿Se puede mejorar?

¿Puedo tener un repositorio central para la creación de objetos y luego cada creación de objetos usará automáticamente ese repositorio?

Respuesta:

Para las aplicaciones cliente, a menudo es mejor adaptar un patrón como MVP (o MVVM) y usar el enlace de datos desde el formulario al ViewModel o Presenter subyacente.

Para los ViewModels, puede inyectar las dependencias necesarias utilizando la inyección estándar de constructor.

En la Raíz de composición de su aplicación, puede conectar todo el gráfico de objetos para su aplicación. No necesita usar un contenedor DI (como Ninject) para esto, pero puede hacerlo.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım