Исполнение функций подгружаемых во время исполнения программы из сторонних хранилищ - C#

Узнай цену своей работы

Формулировка задачи:

День добрый, отзывчивые, знающие, смекалистые. Не знаю как чётко сформулировать вопрос, поэтому опишу как смогу, надеюсь поймёте.(Опытным программистам к таким постановкам проблем не привыкать ) Язык C#. Предположим что есть программа, которая по своей сути является оболочкой без особого функционала, но с пользовательским интерфесом (форма с полями ввода и кнопками). И вот эта программа, должна смотреть в определённом месте все файлы нами заданного типа. (пофиг каком, пусть папка с именем LibSrc которая рядом с экзешником самой программы лежит). Файлы эти по своей "структуре" однотипные, но по содержанию разные. Содержат эти файлы только функции. Причём функции только типа
bool FuncNx(ref byte[][] args, ref String ReturnNameThisFuntion)
Если файлом ПОТРЕБУЕТСЯ для решения проблеммы ещё что-то содержать - это нормально и допустимо. Программа же должна по желанию пользователся должна выдать список всех доступных функций из этих файлов и иметь возможность запускать выбранную пользователем из этого списка функцию с параметрами (котоыре все вида byte[][] args) Собственно вопрос, какой сущьностью должны быть эти файлы с функциями? Библиотеками, сериализованными экземплярами класса или ещё чемто? И собственно как это должно работать? Писать код не прошу(хотя и приветствую) но меня больше интересует сам подход и общая идея.

Варианты подходаЖ:

Была идея сделать эти файлы в виде DLL, но собственно как работать с данной конкретной библиотекой остаётся непонятным - самой программе же чтбы подгрузить библиотеку и воспользоваться функциями из неё нужно же знать имена этих функций, не так ли? Можно конечно в каждую такую длл ку засунуть функцию типа
bool GiveMeYourFuncsList(ref List<DelegateMy> FuncList)
где public delegate bool DelegateMy(ref byte[][] args, ref String ReturnNameThisFuntion); Тоесть в каждой библиотеке есть функция с одним и темже именем которая возвращает лист с указателем на все её функции. Но я не уверен что такое вобще реализуемо, не пробовал, просто мысль. Другая идея это каждый такой вот файл будет не DLL а сохраненный сериализованный класс(экземпляр?!), который является наследником от некоторого класса, который позволил бы организовать взаимодействие программы с нашей программой, но в каждом таком классе переопределены функции и их коичество(!), однако количество функций указано в виде константного поля. Ваши коментарии, пожалуйста.
Вы хоть маякните если "что автор хотел то вобще?! он сам то понял? я нет!"

Решение задачи: «Исполнение функций подгружаемых во время исполнения программы из сторонних хранилищ»

textual
Листинг программы
var functionMap = assembly.GetTypes().ToDictionary(t => t, t => t.GetMethods());

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы