Виндзорская зависимость - PullRequest
0 голосов
/ 31 марта 2010

У меня есть класс с таким конструктором:

public UserRepository(IBlockRepository blockRepos)
{
}

и снова у меня есть другой класс с таким конструктором:

public BlockRepository(IUserRepository userRepo)
{
}

это вызывает ошибку Виндзора:

Castle.MicroKernel.Handlers.HandlerException: невозможно создать компонент 'UserRepository', поскольку он имеет зависимости, которые должны быть удовлетворены. UserRepository ожидает следующих зависимостей

Как мне это исправить?

Ответы [ 2 ]

9 голосов
/ 31 марта 2010

У вас есть циклическая зависимость здесь. Проблема с курицей и яйцом, так сказать. Это проблема дизайна, которая не имеет никакого отношения к Виндзору. Прервите цикл в вашем коде, и Виндзор сможет отлично строить ваши объекты

1 голос
/ 31 марта 2010

В дополнение к тому, что сказал Кшиштоф: если вам нужны классы, которые зависят друг от друга, это хороший показатель того, что функциональность не следует разделять на эти два класса, как сейчас. Вы должны попытаться объединить их вместе, а затем разделить реальные односторонние зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...