Как стать автором
Обновить

Комментарии 7

А до этого решались через System.Addin :)
Несколько замечаний.

Activator.CreateInstance(Type) выкинет Exception если у класса нет конструктора без параметров. Для вызова конструктора с параметрами нужно применять Activator.CreateInstance(Type, object[])

Вместо того чтобы искать MethodInfo можно просто использовать Type.InvokeMember(string, BindingFlags, Binder, object[]) где BindingFlags указывает что именно мы вызываем(Get/SetProperty, InvokeMethod etc) а Binder используется в случае когда нужно принудительно выбирать вызываемый метод(когда в параметрах есть var etc)

Ну и да, про MEF уже сказали выше )
И еще неконвенционные для .NET имена свойств и методов. Должны быть в PascalCase.

Можете считать меня grammar nazi. :)
При таком подходе, все плагины грузятся в AppDomain хост-приложения и выгрузить их можно, только вместе со всем приложением.
В тоже время, находясь в домене хоста, плагины могут «напрямую» общаться с элементами хоста.
Если плагин загружать в другой AppDomain, необходимо организовывать cross-domain коммуникации.
Может в блог .Net перекините?
с радостью бы перекинул, да возможность не совпадает с желанием… увы ;)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации