Ninject MVC:多次调用导致失败

时间:2016-02-02 15:18:40

标签: c# asp.net-mvc inversion-of-control ioc-container ninject.web.mvc

由于某些原因,我总是使用Ninject MVC在运行时将我的实际Db绑定到DbContext。我在使用Ninject时遇到的一个问题是,当我需要访问AuthorizeAttribute等属性中的绑定对象时,Ninject会导致属性的两次触发,导致出现错误,例如遇到空引用。例如:

public class UserAccessAttribute : AuthorizeAttribute
{
    Boolean isLoggedIn = false;
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        DbContext db = App_Start.NinjectWebCommon.GetKernel.Get<DbContext>();
        IdentityContext identityContext = new IdentityContext(httpContext);
        ....
        return isLoggedIn;
     }
     ...
 }

在上面的代码中,Ninject导致属性被触发两次,导致在第二个触发器中遇到Null HttpContext。我彻底检查了代码很多次,我确定它与Ninject有关。那为什么会发生,如何解决呢?

0 个答案:

没有答案