0

ninject mvc 和 asp.net mvc2 有什么问题?我试图在 vwd 2010 express 上设置一个简单的项目,但似乎 ninject 控制器工厂无法正确创建控制器,这是我的代码

public class MvcApplication : Ninject.Web.Mvc.NinjectHttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Nom d'itinéraire
            "{controller}/{action}/{id}", // URL avec des paramètres
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut
        );

    }

    protected override void OnApplicationStarted()
    {            
        AreaRegistration.RegisterAllAreas();

        RegisterRoutes(RouteTable.Routes);
    }


    protected override IKernel CreateKernel()
    {
        return new StandardKernel(new ServiceModule());
    }

    #region Module d'injection de depandance

    internal class ServiceModule : NinjectModule
    {
        public override void Load()
        {
            Bind<IMyService>().To<MyServiceImpl>();
        }
    }

    #endregion
}

控制器代码

public class MyController : Controller
{
    private IMyService myService;

    public MyController(IMyService myService)
    {
        this.myService = myService;
    }


    public ActionResult Index()
    {
        return View();
    }
}

提前致谢

4

1 回答 1

0

我解决了这个问题,我忘了为 DAO 设置绑定,所以当 ninject 无法解析对象图时,它会将控制器的创建委托给默认工厂,这需要一个无参数的构造函数。

于 2011-04-02T10:20:20.747 回答