У меня есть одно решение. Имею 2 Dll (проекта):
DLL пользовательского интерфейса:
DLL "B":
Похоже, что мне нужно добавить ссылки как в пользовательский интерфейс, так и в библиотеки DLL "B", чтобы использовать классы и функции друг друга.
Проблема: Visual-Studio выдает ошибку «Добавление этого проекта в качестве ссылки может вызвать циклическую зависимость».
Вы можете изменить дизайн упаковки. Вам нужны клиентская dll и серверная dll. Серверной dll не нужно ничего знать о клиенте. Серверная dll вызывается клиентом и может возвращать данные клиенту в виде массивов или объектов любого типа. Таким образом, у вас может быть 1 проект решения с 2 подпроектами в vs.
Проблема не в самой ошибке, у вас проблема с дизайном, вы можете ознакомиться с этим материалом:
Что такое круговая зависимость и как ее решить?
И этот вопрос по поводу здесь
Я знаю, что у меня проблема с дизайном. Но я не знаю, как это решить. Мне нужно использовать в «UI» функцию, расположенную в dll «B». Но с другой стороны, мне нужно использовать dll функции «B», которая находится в dll «UI». Но, насколько я понимаю, я могу добавить только одну ссылку dll на другую, а не одновременно обратно.
Ошибки проектирования часто приводят к циклическим зависимостям, которых следует по возможности избегать. Никогда не вызывайте пользовательский интерфейс непосредственно из вашей бизнес-библиотеки.