Написание аддин или плагин фреймворк на C #
Я пишу Addin Framework на C #, и мне интересно, как я могу сделать Addin не загружаемым без необходимости перезапуска приложения.
Я слышал о доменах приложений, но как они работают? Может ли надстройка добавить классы расширяемости и вызываться в главном домене приложений через интерфейсы, при этом все равно быть выгружаемым и вызывать код очистки, в результате чего эти классы удаляются без того, чтобы эта сборка находилась в главном домене приложений?
Или есть другие способы получения выгружаемых надстроек, но IIRC, кроме AppDomain, нельзя выгружать сборку.
Я также хочу, чтобы движок addin был совместим с Mono, если это возможно, поэтому любые ответы стараются оставаться совместимыми с Mono, если это возможно.