Научиться работать с динамическими библиотеками в C#.
В папке находится несколько библиотек. Необходимо обнаружить все библиотеки. Загрузить их в память. Найти команды, которые помечены атрибутом PluginLoad. Предполагая, что у таких команд конструктор не имеет параметров, создать экземпляры таких классов и выполнить методы Execute.
Необходимо учесть, что некоторые плагины зависят от других, что выражается в том, что одни плагины должны быть загружены раньше других.
Указание. Зависимости между плагинами образуют граф. Можно использовать процедуру поиска соседей для определения процедуры занрузки плагинов.
Интерфейсы в C# - Microsoft Docs
Официальная документация по работе с интерфейсами в C#
Работа с рефлексией: Assembly.LoadFrom - Microsoft Docs
Документация по динамической загрузке сборок в .NET
Модульное тестирование с xUnit - Microsoft Docs
Руководство по созданию unit-тестов с использованием xUnit
Работа с файловой системой в .NET - Microsoft Docs
Полное руководство по файловым операциям и потокам ввода-вывода
Рефлексия в .NET - Microsoft Docs
Основные концепции рефлексии и динамического программирования
Паттерн "Команда" - Microsoft Learn
Объяснение паттерна Command в контексте .NET