Другими зависимостями я имею в виду абстрактные классы и все остальное.Где должны быть интерфейсы и другие зависимости в C#?
У меня есть проект в виде dll
, которому необходимо определенное interface
, IInput
. Для тестового проекта также нужен этот интерфейс, поэтому я поместил этот интерфейс в свой основной проект, который, в свою очередь, является отдельной сборкой exe.
Это потому, что в конечном итоге основной проект должен будет использовать этот интерфейс, когда я соединяю все вместе. Теперь проблема была в том, что когда я попытался добавить ссылку в основной проект в DLL со ссылкой на основной проект, я получил круговую зависимость.
У меня никогда не было этой проблемы раньше, и я не знаю, как лучше ее противостоять. В качестве временного исправления я переместил интерфейс в отдельную DLL, но очень скоро мне понадобится его в основном проекте, чтобы я вернулся на квадрат.
Edit:
Я хотел бы упомянуть, дизайн, так что здесь идет.
Menu
Menu Tests
Runner
Меню имеет IInput, который на самом деле является адаптером интерфейса для сторонней библиотеки, чтобы обеспечить единичное тестирование.
Таким образом, меню необходимо для ввода, но так будет и бегун. Проект runner (exe) потребует ввода, поэтому мне понадобится IInput снова.
Это то, о чем я думал, но я никогда не слышал о единственной сборке только для пары интерфейсов. – Finglas
Я обычно использую проект «BusinessEntities» и поддерживаю любые интерфейсы там, будь то пара или большое количество. Работает хорошо. –