Каковы «нормальные» способы создания плагинов в скомпилированных языках (C#/C/C++/D)? Меня особенно интересуют языковые агностические подходы, но специфический язык не является неприемлемым.Что рекомендуется для подключаемых систем в приложениях?
В настоящее время применяются подходы к «компиляции времени» (просто введите код или нет, и все работает), но предпочтительными могут быть операции, которые могут перейти на более динамичный подход.
Что касается типа во время выполнения, я больше заинтересован в механике загрузки плагина и этажерку, чем проектирование интерфейса плагин/приложение
EDIT: BTW плагин будет рабом не мастер , Основное действие подключаемого модуля будет заключаться в том, что в данной ситуации он будет призван «выполнить свою задачу» и получит объект среды, который он должен использовать, чтобы получить то, что ему нужно для работы.
Моя первая идея состояла в том, чтобы включить подключаемый модуль, содержащий статический конструктор, который регистрирует подключаемый модуль при запуске. Однако C# (один из языков, с которым мне нужно работать), по-видимому, не вызывает статические конструкторы, кроме как по требованию, и это не работает. Есть идеи? – BCS 2008-10-19 23:38:42