Работает ли существующий «шаблон плагина» ядра C# .net с глубиной плагина больше 1?C#

Место общения программистов C#
Ответить
Anonymous
 Работает ли существующий «шаблон плагина» ядра C# .net с глубиной плагина больше 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/does-existing-c-sharp-net-core-plugin-pattern-works-with-plugin-depths-bigger[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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