我们正在构建一个支持第三方开发人员编写的插件(必须导入/导出由我们定义的某些接口)的应用程序。我们计划使用MEF来检测指定目录中是否存在这些插件。
我可以对插件开发人员施加什么级别的控制,以最大限度地减少编写糟糕的组件导致内存泄漏(影响稳定性)和/或占用主机应用程序的处理器(影响性能)的可能性?
我使用过诸如ANTS内存和性能分析应用程序之类的工具来跟踪和诊断发生的问题,但考虑到应用程序可能运行在我们无法控制的环境中,可能并不总是能够做到这一点。
发布于 2012-02-07 05:39:43
我可以对插件开发人员施加什么级别的控制,以最大限度地减少编写糟糕的组件导致内存泄漏(影响稳定性)和/或占用主机应用程序的处理器(影响性能)的可能性?
您必须在一个单独的子进程中加载插件,然后通过WCF或其他形式的进程与该进程进行通信。这样,您就可以监控资源使用情况,并在必要时终止插件。
MEF在这方面帮不了你。但也许可以编写自己的ExportProvider实现来处理部分或全部问题。
编辑:Piotr Włodek的IsolatingCatalog看起来很有前途。
https://stackoverflow.com/questions/9161813
复制相似问题