导致循环依赖和堆栈溢出的依赖注入,我做错了吗?

时间:2012-01-10 19:15:54

标签: asp.net-mvc-3 dependency-injection unity-container

我是依赖注入世界的新手,刚刚开始使用Unity 2.0的项目。一切都很好,直到我创建了一个MVC服务,该服务引用了另一个服务,该服务又引用了其他服务。结果我得到了堆栈溢出异常。我明白发生了什么,这是有道理的,但它让我停下来,认为我可能做错了什么。是否有确保不会发生这种情况的最佳做法?

public AccountService(IUserRepository userRepository, IAuthenticationService authService...

public AuthenticationService(IUserRepository userRepository, IAccountService accountService...

1 个答案:

答案 0 :(得分:3)

  

它让我停下来,认为我可能做错了什么

是的,你的设计错了。您应该避免在对象中使用循环引用。

  

是否有最佳做法确保不会发生这种情况?

在对象层次结构中断开此循环引用。重新思考你的设计。