控制第三方插件组件

时间:2012-02-06 14:41:05

标签: mef extensibility

我们正在构建一个支持第三方开发人员编写的插件(必须导入/导出我们定义的某些接口)的应用程序。我们计划使用MEF来检测指定目录中是否存在这些插件。

我可以对插件开发人员施加什么级别的控制,以最大程度地降低编写错误的组件可能导致内存泄漏(影响稳定性)和/或占用主机应用程序的处理器(影响性能)的可能性?

我已经使用ANTS内存和性能分析应用程序等工具在问题发生时跟踪和诊断问题,但鉴于应用程序可能在我们无法控制的环境中运行,可能无法始终执行此操作。

1 个答案:

答案 0 :(得分:0)

  

我可以对插件开发人员施加什么级别的控制,以最大程度地降低编写错误的组件可能导致内存泄漏(影响稳定性)和/或占用主机应用程序的处理器(影响性能)的可能性?

您必须在单独的子进程中加载​​插件,然后通过WCF或其他形式的IPC与该进程通信。这样,您可以监视资源使用情况并在必要时终止插件。

MEF对此没有帮助。但也许有可能编写自己的ExportProvider实现来处理部分或全部内容。

编辑:PiotrWłodek的IsolatingCatalog看起来很有希望。