2013-08-29 115 views
1

Ninject現在允許將屬性注入ValidationAttribute(https://github.com/ninject/ninject.web.mvc/wiki/Injection-of-validators)。它工作的很好,直到你使用綁定對象InRequestScope()。通過Ninject將對象InRequestScope注入ValidationAttribute引發錯誤

所以,這是我認爲正在發生的事情。 ValidationAttribute在ASP.NET中以單例實現。

  1. 第一次實例化屬性時,Ninject會正確填充注入的屬性。
  2. 在當前請求結束時處理注入的對象
  3. 在下一個請求時,訪問注入屬性會拋出錯誤,因爲它已被處置。

Ninject不會嘗試填充注入屬性,因爲驗證屬性永遠不會重新實例化。

這是否有意義?有沒有人有任何想法解決?

回答

2

這是正確的。

如果您確實需要請求範圍中的依賴項,則必須爲依賴項注入factory而不是依賴項本身,並在評估過程中使用它來獲取新實例。

+0

這就是我害怕的...... –