我在我的應用程序中使用存儲庫模式與服務層。爲了遵循最佳做法,我爲每個回購協議創建了一項服務。System.StackOverflow異常類之間的遞歸依賴關係
我的兩項服務是相互依賴的。我需要從每個服務中調用至少一種方法。
我使用依賴注入來解決這些依賴關係。看來這個問題從以下莖:
類A依賴B類上
B類是依賴於A類
我的DI容器解決所有的以上。
我做出A級的呼叫並獲得注入的B類的一個實例...
這將導致容器中創建A類B類的新實例....
哪又注入了新的A級B級...等等...
我想這是我的一個基本的設計缺陷,但我看不出有什麼明顯的方式來解決這個問題。
任何想法?
例
public UserService
{
private readonly IUserRepository userRepo;
private readonly ITransactionService transactionService;
//ctor here....
public ExampleUserMethod()
{
transactionService.GetTransactions();
//do other things
}
public GetUsers()
{
//return users
}
}
public TransactionService
{
private readonly ITransactionRepository transactionRepo;
private readonly IUserService userService;
//ctor here....
public ExampleTransactionMethod()
{
userService.GetUsers();
//Do other things...
}
public GetTransactions()
{
//return transactions
}
}
沒有代碼顯示,沒有什麼可以解決的。祝你好運!哦,要明顯地脫口而出:實例創建的時機太緊。 「其他」容器的實例化至少應該足夠緩慢,以便不會觸發無限循環。就像我說的,_with_代碼可能更有幫助 – sehe
聽起來像一個糟糕的設計。 DI會爲你做的一件事是強化一些更好的設計。像其他人說的,需要一些代碼示例 –
在 – stephen776