下面看看循環引用的幾個場景,在使用依賴注入框架時應該儘可能避免出現這樣的狀況:
1.經過Constructor Injection生成的對象在構造器的參數中互相引用框架
經過Unity容器裝載Class1時,會作Constructor Injection,因爲Class1依賴於Class2,因此會先去裝載Class2。在裝載Class2時一樣也會作Constructor Injection,因爲Class2又依賴於Class1,因此會再去裝載Class1......這樣一直持續裝載下去,就成了一個死循環,跳不出來。
2. 經過Constructor Injection生成的對象做爲自身構造器的參數
直接看例子:對象
3. 經過method call injection生成的對象互相引用blog
直接看例子:get
4.經過property(setter) injection生成的對象互相引用string
直接看例子:it
做者:Inrie (洪曉軍)
出處:http://www.cnblogs.com/inrieio