当前位置:  开发笔记 > 编程语言 > 正文

没有用于ASP.NET MVC的DI容器的控制器的构造函数参数

如何解决《没有用于ASP.NETMVC的DI容器的控制器的构造函数参数》经验,为你挑选了2个好方法。

有没有人有关于如何创建具有除使用依赖注入容器之外的参数的控制器的任何代码示例?

我看到很多样本都使用像StructureMap这样的容器,但是如果你想自己传递依赖类,那就没什么了.



1> Craig Stuntz..:

一种方法是创建一个ControllerFactory:

public class MyControllerFactory : DefaultControllerFactory
{
    public override IController CreateController(
        RequestContext requestContext, string controllerName)
    {
        return [construct your controller here] ;
    }
}

然后,在Global.asax.cs中:

    private void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes(RouteTable.Routes);
        ControllerBuilder.Current.SetControllerFactory(
            new MyNamespace.MyControllerFactory());
    }



2> Ben Scheirma..:

你可以使用穷人的依赖注入:

public ProductController() : this( new Foo() )
{
  //the framework calls this
}

public ProductController(IFoo foo)
{
  _foo = foo;
}

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有