Существует ли «шаблон плагина» C# .NET Core, который работает с глубиной плагина больше 1?C#

Место общения программистов C#
Anonymous
Существует ли «шаблон плагина» C# .NET Core, который работает с глубиной плагина больше 1?

Сообщение Anonymous »

Я пытался использовать это руководство по C# .NET Core: поддержка создания приложения с плагином, назовем его «шаблоном плагина», чтобы создать приложение, которое позволило бы использовать произвольную глубокую структуру master/ классы плагинов, например. вместо того, чтобы иметь одно основное приложение, которое загружает разные сборки в качестве плагинов и правильно разрешает их зависимости, я хотел, чтобы эти плагины также стали «главными» для своих плагинов.
Итак, с точки зрения пользователя, учитывая 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
Имена интерфейсов произвольны, это именно та структура, которую я хотел представить. Структура, в которой каждый плагин представляет собой отдельную сборку, находящуюся в другом каталоге, и имеющую проблемы с зависимостью от одних и тех же сборок разных версий (вот почему мне нужна изоляция). Конечно, все плагины находятся «под» основным каталогом «Master», поэтому структура сценариев 1 и 2 также является структурой каталогов.
Проблема
Использование вышеупомянутой ссылки работает безупречно в случае сценария 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]

Вернуться в «C#»