Под другими зависимостями я имею в виду абстрактные классы и все остальное.
У меня есть проект в виде dll
, для которого требуется определенный interface
, IInput
. Тестовый проект также требует этот интерфейс, поэтому я поместил этот интерфейс в свой основной проект, который, в свою очередь, является отдельной сборкой exe.
Это потому, что в конечном итоге главный проект должен будет использовать этот интерфейс, когда я соединяю все вместе. Теперь у меня возникла проблема, когда я попытался добавить ссылку в основном проекте в dll со ссылкой на основной проект, и я получил циклическую зависимость.
У меня никогда не было этой проблемы раньше, и я не знаю, как лучше ее решить. В качестве временного исправления я перенес интерфейс в отдельную dll, но очень скоро мне потребуется это в основном проекте, поэтому я вернулся на круги своя.
Изменить:
Я должен был упомянуть дизайн, так что здесь.
Menu
Menu Tests
Runner
Меню имеет IInput, который на самом деле является интерфейсным адаптером для сторонней библиотеки, чтобы позволить модульное тестирование.
Так что меню нужно для ввода, но и бегун. Проект бегуна (exe) потребует ввода, поэтому мне снова понадобится IInput.