2017-02-07 2 views
0

У меня есть 3 библиотеки классов, пример ниже: Как устранить проблему с круговой зависимостью?

  • ApplicationCore (Main Class Library),
  • Application1 (Добавлена ​​ссылка на ApplicationCore)
  • Application2 (Добавлена ​​ссылка на ApplicationCore)
  • Я хотел бы использовать приложение 1 в библиотеке классов базового класса приложений без циклической проблемы с зависимостями. Какова наилучшая практика внедрения функций Application1 в ApplicationCore?

    +2

    Возьмите эти функции и переместите их в ApplicationCore, а затем используйте их из Application1. – Evk

    ответ

    2

    Переместите общую функциональность в ApplicationCore или новую библиотеку общих классов.

    0

    Другим вариантом является интерфейс и инъекция зависимостей (DI).

    • Создайте интерфейс в библиотеке MainClass. (ApplicationCore)
    • Возможно, в ApplicationCore реализована реализация этого интерфейса по умолчанию.
    • В приложении 1 настройте DI для реализации пользователем из приложения 1 для интерфейса.

    В Application2 он будет использовать реализацию по умолчанию.

    В Application1 он будет использовать реализацию Application1.

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