摘要:
前面已经得到了热插拔的插件原型,这次讨论如果插件是服务提供者怎么办?
我能想到的,
需要在起动时加载所有插件
然后在插件变动时,及时卸载旧的插件,加载新的插件。
如果有新插件放在目录中,需要马上加载新的插件。
如果插件被删除,我们要把对应的服务也移除。
最终使用时,如下:
private void FormMain_Load(object sender, EventArgs e)
{
var inst = PluginManager.Instance;
inst.PluginChanged += OnPluginChanged;
}
void OnPluginChanged(object sender, PluginManagerEventArgs e)
{
if (e.ChangeType == PluginChangeType.Created)
{
// 这里初始化插件,提供服务
e.PluginInstance.Run(DateTime.Now.To 阅读全文
摘要:
实现在调用域中执行回调 阅读全文