加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – Ninject – 无法找到资源

发布时间:2020-12-16 10:00:54 所属栏目:asp.Net 来源:网络整理
导读:我收到错误 The resource cannot be found. 当我尝试在我的MVC-3应用程序中实现Ninject时.在CreateKernel()期间,问题似乎来自Global.asax #region Inversion of Control protected override IKernel CreateKernel() { return Container; } static IKernel _c
我收到错误

The resource cannot be found.

当我尝试在我的MVC-3应用程序中实现Ninject时.在CreateKernel()期间,问题似乎来自Global.asax

#region Inversion of Control

    protected override IKernel CreateKernel()
    {
        return Container;
    }

    static IKernel _container;
    public static IKernel Container
    {
        get
        {
            if (_container == null)
            {
                _container = new StandardKernel(new SiteModule());
            }
            return _container;
        }
    }

    internal class SiteModule : NinjectModule
    {
        public override void Load()
        {
            bool MOCKDB = true;
            //MOCKDB = false;//Stop Mocking
            if (MOCKDB)
            {
                //Set up mock bindings
                Bind<iItem>().To<LeadServiceMock>();
            }
            else
            {
                //Set up real bindings.
                Bind<iItem>().To<LeadService>();
            }
        }
    }
    #endregion

如果我把上面的代码拿回来并恢复到System.Web.HttpApplication,那么事情就会重新开始.

public class MvcApplication : NinjectHttpApplication//:System.Web.HttpApplication
    {

我从我之前编写的实现中获取此代码,该代码仍然有效.如果我逐步调试

protected override IKernel CreateKernel()
{
    return Container;
}

我在工作程序和破坏的程序中都出错了:

Locating source for 'c:ProjectsNinjectninject.web.mvcmvc3srcNinject.Web.MvcNinjectHttpApplication.cs'. Checksum: MD5 {b8 b2 52 86 ce 34 de 53 61 76 c9 df ff 65 8c 3f}
The file 'c:ProjectsNinjectninject.web.mvcmvc3srcNinject.Web.MvcNinjectHttpApplication.cs' does not exist.
Looking in script documents for 'c:ProjectsNinjectninject.web.mvcmvc3srcNinject.Web.MvcNinjectHttpApplication.cs'...
Looking in the projects for 'c:ProjectsNinjectninject.web.mvcmvc3srcNinject.Web.MvcNinjectHttpApplication.cs'.
The file was not found in a project.
Looking in directory 'c:Program FilesMicrosoft Visual Studio 10.0VCcrtsrc'...
Looking in directory 'c:Program FilesMicrosoft Visual Studio 10.0VCatlmfcsrcmfc'...
Looking in directory 'c:Program FilesMicrosoft Visual Studio 10.0VCatlmfcsrcatl'...
Looking in directory 'c:Program FilesMicrosoft Visual Studio 10.0VCatlmfcinclude'...
The debug source files settings for the active solution indicate that the debugger will not ask the user to find the file: c:ProjectsNinjectninject.web.mvcmvc3srcNinject.Web.MvcNinjectHttpApplication.cs.
The debugger could not locate the source file 'c:ProjectsNinjectninject.web.mvcmvc3srcNinject.Web.MvcNinjectHttpApplication.cs'.

我怀疑我在SiteModule中做错了.我究竟做错了什么?

解决方法

用OnApplicationStarted()替换Application_Start()

//protected void Application_Start()
    //{
    //    AreaRegistration.RegisterAllAreas();

    //    RegisterGlobalFilters(GlobalFilters.Filters);
    //    RegisterRoutes(RouteTable.Routes);
    //}

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

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读