Реализовать один и тот же интерфейс в разных проектах - PullRequest
0 голосов
/ 24 августа 2018

У меня есть проект API и проект библиотеки классов, который содержит интерфейсы. Итак, у меня есть третий проект, который реализует интерфейсы, и проект, который реализует те же интерфейсы проекта 3. Поэтому проекты 3 и 4 знают о проекте 2.

Моя проблема в том, что я хочу вызывать реализации через мой проект библиотеки классов (второй), но этот проект не знает проекты реализации.

Как я могу назвать проекты внедрения через мой второй проект?

enter image description here

Идея состоит в том, что у меня много проектов по реализации, поэтому я просто хочу создать еще один новый проект и реализовать интерфейс без необходимости значительного изменения кода в проекте 2.

Я использую .NET Core 2.0 во всех проектах

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Трудно точно знать, что вы должны делать, не зная, чего вы пытаетесь достичь, но ...

Создайте проект, назовите его 2.a, который содержит только интерфейсы.Предполагая, что Project 2 использует реализации как в 3, так и в 4, он берет ссылку на 2.a, 3 и 4.

0 голосов
/ 24 августа 2018

Это классическая система «плагинов».

Определите интерфейс в проекте 2 (проект «хостинг»)

3 и 4 ссылки 2, чтобы получить определение интерфейса (также классически для получения услуг, предлагаемых проектом хостинга)

Теперь вам нужно заставить хост (2) динамически загружать плагины.

Вы можете сделать это «вручную».= Перечислите библиотеки DLL - это особый каталог и найдите те, которые реализуют интерфейс.

Или вы можете использовать для этого различные фреймворки.MEF хорошо известен.Посмотрите здесь для получения дополнительной информации Реализация архитектуры плагинов - динамическая загрузка DLL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...