Ninject 现在可以将属性注入到 ValidationAttribute ( https://github.com/ninject/ninject.web.mvc/wiki/Injection-of-validators )。它工作得很好,直到您使用绑定对象 InRequestScope()。
所以,这就是我认为正在发生的事情。ValidationAttribute 在 ASP.NET 中实现为单例。
- 第一次实例化属性时,Ninject 会正确填充注入的属性。
- 被注入的对象在当前请求结束时被释放
- 在下一个请求时,访问注入的属性会引发错误,因为它已被释放。
Ninject 不会尝试填充注入的属性,因为验证属性永远不会重新实例化。
这有意义吗?有没有人有任何解决方法的想法?