2014-05-20 101 views
1

無論如何圍繞LightInject中檢測到的遞歸依賴項問題。Lightinject - 檢測到遞歸依賴關係

我有兩個採取對方的業務服務,因此我得到一個遞歸依賴檢測到的錯誤。任何人都想出了一個解決方法?我確定在結構圖中是有效的。

所以我有這樣的:

public class RetailerService : IRetailerService 
{ 
    private readonly IUserService _userService; 

    public RetailerService(IUserService userService) 
    { 
     _userService = userService; 
    } 

public class UserService : IUserService 
{ 
    private readonly IRetailerService _retailerService; 

    public UserService(IRetailerService retailerService) 
    { 
     _retailerService = retailerService; 
    } 

每個需要對對方的電話。例如,當我加載用戶時,我加載了零售商,這是對零售商服務的調用,當我添加零售商時,我需要驗證用戶是否是對userService的調用。

在此先感謝。

+1

這不是IoC框架的問題,你已經犯了一個無法解決的問題。首先找到一種可以手動構建這兩個對象的方法,然後我們可以看到我們如何欺騙IoC框架爲您做這件事。我也質疑這裏的責任。您可能希望將這兩者分成三部分,創建一個新的服務,可以加載用戶+零售商或零售商+用戶,而不需要這兩個人知道另一個。 –

+0

StructureMap無法爲您解決這個問題。如果您嘗試手動構建對象圖,則無法進行編譯。 – Steven

+1

好的歡呼傢伙,我已經重新開展了這些服務,並從用戶服務中刪除了零售服務依賴項。 – user1829226

回答