我正在编写一个ASP.NET MVC 2应用程序,开发人员可以使用插件扩展它。我开始考虑如何创建一个插件系统。 (例如像Joomla的那样)
我对如何做到这一点有些怀疑。我在网上搜索过,发现有两种可能的解决方案。
使用接口或抽象类来实现方法和插件结构,加载程序集,将对象强制转换为接口,并在需要挂钩系统时调用插件应该具有的方法。
使用C#事件加载程序集并引发我需要挂钩系统的事件。构造函数中的插件将使用我的应用程序提供的事件注册该函数。
什么是最佳解决方案?有什么性能考虑因素?还有什么其他方法?
答案 0 :(得分:4)
不应该编写自己的插件系统,而应该考虑Managed Extensibility Framework(MEF),这是微软自己的插件框架。
答案 1 :(得分:1)
查看Codeplex上的Orchard项目。 Microsoft开发人员已经构建了一个类似于您所描述的插件机制。它非常复杂......