我应该如何在C#中创建具有多个实例的插件?

时间:2009-09-01 21:02:35

标签: c# plugins mef

我的最终目标是将控件作为插件加载,以用作AvalonDock中的DocumentContent。因此,我需要能够创建这些控件的多个实例,并且我希望尽可能为插件创建者提供有限的开销。

我最初的意图是使用MEF来定位和管理我的插件,但是this question似乎意味着,至少在这个时间点,MEF可能不适用于此。

我是否应该使用其他解决方案(DI容器的域名,或MEF的域名,被认为仅限于提供类的实例,是否有另一种解决方案更好地映射到我的问题),或者我应该使用建议的解决方案(例如使用反射来克隆实例,或者要求插件创建者提供工厂方法/对象 - 看似hackish)与MEF一起工作(或者,是否有一种简单的方法来配置MEF来完成此操作)?

1 个答案:

答案 0 :(得分:2)

MEF的最新预览包括专门针对此场景的类型 - 请参阅此处的博客文章:http://blogs.msdn.com/nblumhardt/archive/2009/08/28/dynamic-part-instantiation-in-mef.aspx或更多有关MEF wiki的信息:http://mef.codeplex.com/Wiki/View.aspx?title=PartCreator&referringTitle=Home