смешно, что вы должны спросить об этом, я сейчас работаю над чем-то подобным.
В интерфейсе, который вы определяете для плагинов, укажите метод/свойство, являющееся интерфейсом из вашего приложения, которое может использовать плагин.
Затем внутри вашего приложения реализуйте этот интерфейс.
Теперь на вашем плагине вызовите свой метод, проходящий в этом классе, который.
Теперь внутри плагина он сможет использовать методы и свойства, которые вы разработали в интерфейсе.
interface IPlugin
{
void CanBeCalledByTheApplication(IAppObject main);
}
interface IAppObject
{
void Alert(string msg);
}
Сейчас в вашей реализации плагина вы можете просто пойти
main.Alert("this is my message");
И в вашем приложении вы бы пойти
(IPlugin)myPlugin.CanBeCalledByTheApplication(someObject);
Это, конечно, не полный пример, но вы должен быть в состоянии получить эту идею.
Какая система плагинов вы используете? Можете ли вы опубликовать код, чтобы показать, что у вас уже есть (может быть, пример того, как работает плагин?) Спасибо. – joshhendo
мой код основан на этом http://www.codeproject.com/Articles/28949/A-Flexible-Plugin-System – Gagan