我是依赖注入世界的新手,刚刚开始使用Unity 2.0的项目。一切都很好,直到我创建了一个MVC服务,该服务引用了另一个服务,该服务又引用了其他服务。结果我得到了堆栈溢出异常。我明白发生了什么,这是有道理的,但它让我停下来,认为我可能做错了什么。是否有确保不会发生这种情况的最佳做法?
public AccountService(IUserRepository userRepository, IAuthenticationService authService...
public AuthenticationService(IUserRepository userRepository, IAccountService accountService...
答案 0 :(得分:3)
它让我停下来,认为我可能做错了什么
是的,你的设计错了。您应该避免在对象中使用循环引用。
是否有最佳做法确保不会发生这种情况?
在对象层次结构中断开此循环引用。重新思考你的设计。