asp.net-mvc - 我如何让 ninject 2.0 与 asp.net mvc 2 一起工作?

标签 asp.net-mvc asp.net-mvc-2 dependency-injection ninject

我在用:-

  • asp.net mvc rc 2
  • Ninject 和 ninject asp.net mvc 扩展 (http://github.com/enkari/ninject.web.mvc)

  • 我不断收到“没有为此对象定义的无参数构造函数”。对于我的 AccountController。 AccountController 注入(inject)了服务。这些服务的绑定(bind)在 ServiceModule 中定义。

    在 Global.asax.cs 中找到我的 MvcApplication 的代码。
    public class MvcApplication : NinjectHttpApplication // System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Account", action = "Login", id = "" }  // Parameter defaults
            );
    
        }
    
        protected override void OnApplicationStarted()
        {
            AreaRegistration.RegisterAllAreas();
    
            RegisterRoutes(RouteTable.Routes);
    
            RegisterAllControllersIn(Assembly.GetExecutingAssembly());
        }
    
        protected override IKernel CreateKernel()
        {
            return new StandardKernel(new INinjectModule[] { 
                new ServiceModule(),
            });
        }
    }
    

    最佳答案

    针对 ASP.Net MVC 2 dll 重建 Ninject.Web.Mvc 解决了该问题。问题在于 NinjectControllerFactory 类。获取 Controller 实例的方法的签名在 MVC 2 中已更改。

    IController GetControllerInstance(Type controllerType)
    


    IController GetControllerInstance(
            RequestContext requestContext, Type controllerType)
    

    进行必要的更改并重建 Ninject MVC 扩展,一切正常。感谢@Charlino 的建议。

    关于asp.net-mvc - 我如何让 ninject 2.0 与 asp.net mvc 2 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2247533/

    相关文章:

    symfony - FOSRestBundle Controller 作为服务无法正常工作

    php - 模拟单元测试 (PHP)

    javascript - 在nodejs中通过带有构造函数的模块公开多个对象

    asp.net-mvc - 防止继承模型中的验证属性

    javascript - 如何通过 jQuery 在 Select2 中获取额外的参数值?

    asp.net-mvc - asp.mvc模型设计

    templates - 自定义 MVC2 编辑器模板

    jquery - 如何在菜单上显示徽章

    javascript - 如何在 mvc 中使用脚本?不是内联脚本

    c# - 并排安装 ASP.NET MVC3 和 MVC2?