2010-03-31 3 views
0

У меня есть класс с конструктором, как это:Windsor зависимость

public UserRepository(IBlockRepository blockRepos) 
{ 
} 

и снова, у меня есть еще один класс с конструктором, как это:

public BlockRepository(IUserRepository userRepo) 
{ 
} 

это приводит к ошибке Windsor:

Castle.MicroKernel.Handlers.HandlerException: Can't create component 'UserRepository' as it has dependencies to be satisfied. UserRepository is waiting for the following dependencies

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

+0

Какая версия вы используете? Это не исключение. Виндзор должен бросить эту ситуацию ... –

ответ

9

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

1

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

Смежные вопросы