C# 在我的Mvc项目中使用Ninject.Web.Mvc注入失败

C# 在我的Mvc项目中使用Ninject.Web.Mvc注入失败,c#,asp.net-mvc,ninject.web.mvc,C#,Asp.net Mvc,Ninject.web.mvc,我有一门课是这样的: public class UrlHelperFacade:UrlHelper { public UrlHelperFacade(RequestContext requestContext) : base(requestContext) { } public UrlHelperFacade(RequestContext requestContext, RouteCollection routeCollection):base(reques

我有一门课是这样的:

public class UrlHelperFacade:UrlHelper
{
    public UrlHelperFacade(RequestContext requestContext) : base(requestContext) 
    { 
    }

    public UrlHelperFacade(RequestContext requestContext, RouteCollection routeCollection):base(requestContext,routeCollection) 
    { 
    }

    public new virtual bool IsLocalUrl(string url)
    {
        return base.IsLocalUrl(url);
    }
}
我使用NInject在global.asax中绑定这个类:

 protected override IKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        kernel.Bind<UrlHelper>().To<UrlHelperFacade>();
        return kernel;
    }
protectedoverride IKernel CreateKernel()
{
var kernel=新的标准内核();
kernel.Bind().To();
返回内核;
}
然后我在控制器中注入: [注入] 公共新UrlHelperFacade Url{get;set;}

当我使用属性Url时,我可以获取实例,但调用方法时失败:“IsLocalUrl”

以下是错误:

对象引用未设置为对象的实例

堆栈跟踪:

位于System.Web.Mvc.UrlHelper.IsLocalUrl(字符串url)

位于d:\Projects\GCRIS\SRC\Web\RISLite\CARESTREAM.RISGC.RISLite.Framework.UrlHelperFacade.IsLocalUrl中的CARESTREAM.RISGC.RISLite.Framework.UrlHelperFacade(字符串url):第23行

在d:\Projects\GCRIS\SRC\Web\RISLite\CARESTREAM.RISGC.RISLite.Controllers.AccountController.LogOn中的CARESTREAM.RISGC.RISLite.Controllers.AccountController.LogOn(LogOnModel模型,字符串returnUrl):第76行

在lambda_方法中(闭包、控制器基、对象[])

位于System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object[]参数)

位于System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary`2参数)

位于System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary`2参数)

在System.Web.Mvc.ControllerActionInvoker.c_DisplayClass13.b_10()中

位于System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter筛选器、ActionExecutingContext预文本、Func`1 continuation)


我注意到requestContext的成员HttpContext和RouteData为null。这就是处理这件事的方法吗?我只想让UrlHelper做一个单元测试。

为什么不使用扩展方法呢?另外,因为您的
stacktrace
根本没有提到
Ninject
,请发布所有与Ninject/Binding/dependcyresolving相关的
global.asax
函数。这里有代码:
公共类mvcapapplication:NinjectHttpApplication{protectedoverride IKernel CreateKernel(){var kernel=new standardckernel();kernel.Bind().ToMethod(ctx=>()=>new Bootstrapper().Kernel);Kernel.Bind().To();Kernel.Bind().To();return Kernel;}