gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:05:08 25 4
gpt4 key购买 nike

我在用:-

  • 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com