Итак, с точки зрения пользователя, учитывая URL-адрес имеет форму:
Сценарий 1:
Код: Выделить всё
Master (uses IMasterPlugin interface from dedicated assembly for interfaces "interop")
+-- Plugin1 (implementing interface IMasterPlugin)
+-- Plugin2 (implementing interface IMasterPlugin)
Сценарий 2:
Код: Выделить всё
Master
+-- Plugin1 (uses IPlugin1Plugin interface from other dedicated assembly for interface "interop")
+-- SubPlugin1 (implementing different interface IPlugin1Plugin)
+-- SubPlugin2 (implementing different interface IPlugin1Plugin, uses IPlugin2SubPlugin)
+-- SubSubPlugin1 (implements IPlugin2SubPlugin)
+-- SubSubPlugin2 (implements IPlugin2SubPlugin)
+-- SubSubPlugin3 (implements IPlugin2SubPlugin)
...
+-- Plugin2
Проблема
Использование вышеупомянутой ссылки работает безупречно в случае сценария 1. В случае сценария 2, всякий раз, когда я пытаюсь загрузить сборку, я застреваю с неразрешенными сборками - с этим должен справиться шаблон. Да, я использовал один и тот же .NET (8) для всего. SubPlugins имеют зависимости от различных nuget со своими собственными зависимостями (поэтому мне нужна изоляция)
Вопрос(ы)
Как реализовать сценарий 2 с помощью инструментов ( подход) из учебника? Мне не нужен код, это скорее подсказка, почему код руководства может дать сбой в случае сценария 2. Также утверждение, что «Да, это должно работать для сценария 2, вы делаете что-то не так» или «Нет, сценарий 2 требует другой подход".
Я пытался использовать структуру со страницы:
Код: Выделить всё
MasterApp
Подробнее здесь: [url]https://stackoverflow.com/questions/78809266/does-existing-c-sharp-net-core-plugin-pattern-works-with-plugin-depths-bigger[/url]
Мобильная версия