Итак, с точки зрения пользователя, учитывая 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/is-there-a-c-sharp-net-core-plugin-pattern-that-works-with-plugin-depths-bigg[/url]