c# - una - Parámetros de constructor para controladores sin contenedor DI para ASP.NET MVC
mvc c# windows forms ejemplo (3)
¿Alguien tiene algún ejemplo de código sobre cómo crear controladores que tengan parámetros distintos de usar un Contenedor de inyección de dependencia?
Veo muchas muestras con el uso de contenedores como StructureMap, pero nada si quieres pasar la clase de dependencia tú mismo.
Puede crear un IModelBinder que haga girar una instancia desde una fábrica, o, sí, el contenedor. =)
Puedes usar la inyección de dependencia de un pobre hombre:
public ProductController() : this( new Foo() )
{
//the framework calls this
}
public ProductController(IFoo foo)
{
_foo = foo;
}
Una forma es crear un ControllerFactory:
public class MyControllerFactory : DefaultControllerFactory
{
public override IController CreateController(
RequestContext requestContext, string controllerName)
{
return [construct your controller here] ;
}
}
Luego, en Global.asax.cs:
private void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
ControllerBuilder.Current.SetControllerFactory(
new MyNamespace.MyControllerFactory());
}