Внедрение зависимости, которое вызывает циклическую зависимость и переполнение стека, я делаю что-то не так? - PullRequest
1 голос
/ 10 января 2012

Я новичок в мире внедрения зависимостей и только начал работать над проектом, использующим Unity 2.0. Все работало отлично, пока я не создал службу MVC, которая ссылается на другую службу, которая, в свою очередь, ссылается на другую службу. В результате я получаю исключение переполнения стека. Я понимаю, что происходит, и это имеет смысл, но это заставило меня остановиться и подумать, что я могу делать что-то не так. Есть ли лучший способ убедиться, что этого не произойдет?

public AccountService(IUserRepository userRepository, IAuthenticationService authService...

public AuthenticationService(IUserRepository userRepository, IAccountService accountService...

1 Ответ

3 голосов
/ 10 января 2012

это заставило меня остановиться и подумать, что я могу делать что-то не так

Да, ваш дизайн не так. Вам следует избегать циклических ссылок в ваших объектах.

Есть ли лучшая практика, чтобы этого не произошло?

Просто разбейте эту циклическую ссылку в вашей иерархии объектов. Переосмыслите свой дизайн.

...