Добавление обеих ссылок на dll C#

У меня есть одно решение. Имею 2 Dll (проекта):

DLL пользовательского интерфейса:

  1. исключает решение
  2. активирует операцию продолжения в классе с dll "B", которая в конце вернет массив.
  3. активирует некоторые функции библиотеки Business-Logic dll.

DLL "B":

  1. продолжает работу.
  2. Во время продолжения работы он запускает некоторые события для класса печати в DLL пользовательского интерфейса.
  3. В конце операции он возвращает массив в dll пользовательского интерфейса.

Похоже, что мне нужно добавить ссылки как в пользовательский интерфейс, так и в библиотеки DLL "B", чтобы использовать классы и функции друг друга.

Проблема: Visual-Studio выдает ошибку «Добавление этого проекта в качестве ссылки может вызвать циклическую зависимость».

Ошибки проектирования часто приводят к циклическим зависимостям, которых следует по возможности избегать. Никогда не вызывайте пользовательский интерфейс непосредственно из вашей бизнес-библиотеки.

Fabian Bigler 27.10.2018 00:50

Вы можете изменить дизайн упаковки. Вам нужны клиентская dll и серверная dll. Серверной dll не нужно ничего знать о клиенте. Серверная dll вызывается клиентом и может возвращать данные клиенту в виде массивов или объектов любого типа. Таким образом, у вас может быть 1 проект решения с 2 подпроектами в vs.

NoChance 27.10.2018 01:53
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
37
1

Ответы 1

Проблема не в самой ошибке, у вас проблема с дизайном, вы можете ознакомиться с этим материалом:

Что такое круговая зависимость и как ее решить?

И этот вопрос по поводу здесь

Я знаю, что у меня проблема с дизайном. Но я не знаю, как это решить. Мне нужно использовать в «UI» функцию, расположенную в dll «B». Но с другой стороны, мне нужно использовать dll функции «B», которая находится в dll «UI». Но, насколько я понимаю, я могу добавить только одну ссылку dll на другую, а не одновременно обратно.

Uri Gross 27.10.2018 01:17

Другие вопросы по теме