您好,我通过使用本教程制作简单的博客来学习asp.net的基础知识

http://www.prideparrot.com/blog/archive/2012/12/how_to_create_a_simple_blog_part1#story1-configure-ninject-mvc

当我想为MvcApplication.cs中的MVC项目配置Ninject时,出现错误“'System.Web.HttpApplication'不包含'OnApplicationStarted'的定义”。我在做什么错?有完整的代码:

using Ninject;
using Ninject.Web.Common;
using System.Web.Routing;
using System.Web.Mvc;
using JustBlog.Core;

namespace JustBlog
{
    public class MvcApplication : NinjectHttpApplication
    {
        protected override IKernel CreateKernel()
        {
            var kernel = new StandardKernel();

            kernel.Load(new RepositoryModule());
            kernel.Bind<IBlogRepository>().To<BlogRepository>();

            return kernel;
        }

        protected override void OnApplicationStarted()
        {
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            base.OnApplicationStarted();
        }
    }
}


我在最后一行“ base.OnApplicationStarted();”中遇到问题。

最佳答案

不幸的是,关于Ninject的信息很多。...没有理由再使用NinjectHttpApplication方法了。

相反,只需安装NinjectMVCx,其中x是版本3、4或5。这会将一个名为NinjectWebCommon.cs的文件添加到App_Start中,可用于自定义绑定。无需更改您的HttpApplication或类似的东西。

您可以将此代码放在NinjectWebCommon.cs的RegisterServices中

kernel.Load(new RepositoryModule());
kernel.Bind<IBlogRepository>().To<BlogRepository>();

关于c# - asp.net MVC 4 Ninject OnApplicationStarted(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25230835/

10-10 07:19