3

我正在尝试使用 MVC4 和 Ninject 制作一个简单的“Hello World”。

我正在关注:本教程

我正在使用 MVC4 和 Visual Studio 2012 Web Express,并使用以下内容安装了 Nuget 包:

Install-package Ninject
Install-package Ninject.MVC3

我有以下 global.aspx:

public class MvcApplication : Ninject.Web.Common.NinjectHttpApplication
{
    protected override Ninject.IKernel CreateKernel()
    {
        IKernel kernal = new StandardKernel();
        kernal.Load(Assembly.GetExecutingAssembly());
        kernal.Bind<IMessageService>().To<MessageService>();
        return kernal;
    }

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

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
}

当我运行它时,我发现我抛出了一个异常:Sequence contains no elements并且 VS 尝试打开文件 NinjectHttpApplication.cs 进行调试。VS找不到它。

知道这里发生了什么吗?

谢谢

戴夫

更新

我刚刚尝试了这个问题中给出的解决方案,即将注册绑定移动到 App_Start 中的文件,这个文件是我文件夹中的 NinjectWebCommon.cs,那里没有 NinjectMVC3.cs 文件。

4

1 回答 1

4

我刚才遇到了同样的问题。查看App_Start\NinjectWebCommon.cs 它有创建内核和注册服务的代码,它是自动调用的。将您的 Global.asax.cs 更改回默认代码(有Application_Start()和没有 Ninjectery)。这让我克服了错误。

于 2013-01-23T22:14:41.847 回答