Asp.net mvc 4 通过Ninject将RequestScope中的对象注入ValidationAttribute会引发错误

Asp.net mvc 4 通过Ninject将RequestScope中的对象注入ValidationAttribute会引发错误,asp.net-mvc-4,ninject,Asp.net Mvc 4,Ninject,Ninject现在可以将属性注入ValidationAttribute()。在使用requestscope()中的绑定对象之前,它工作得非常好 所以,以下是我认为正在发生的事情。ValidationAttribute在ASP.NET中作为单例实现 第一次实例化属性时,Ninject会正确填充注入的属性 当当前请求结束时,将释放注入的对象 在下一个请求中,访问注入的属性会抛出一个错误,因为它已被释放 Ninject不会尝试填充注入的属性,因为验证属性从未重新实例化 这有意义吗?有人有什么解决办法吗

Ninject现在可以将属性注入ValidationAttribute()。在使用requestscope()中的绑定对象之前,它工作得非常好

所以,以下是我认为正在发生的事情。ValidationAttribute在ASP.NET中作为单例实现

  • 第一次实例化属性时,Ninject会正确填充注入的属性
  • 当当前请求结束时,将释放注入的对象
  • 在下一个请求中,访问注入的属性会抛出一个错误,因为它已被释放
  • Ninject不会尝试填充注入的属性,因为验证属性从未重新实例化

    这有意义吗?有人有什么解决办法吗?

    没错

    如果您确实需要请求范围中的依赖项,那么您必须为依赖项而不是依赖项本身注入一个依赖项,并在求值期间使用它来获取一个新实例