【问题标题】:Control over 3rd party plug-in components控制第三方插件组件
【发布时间】:2012-02-06 14:41:04
【问题描述】:

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

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

我使用了诸如 ANTS 内存和性能分析应用程序之类的工具来跟踪和诊断发生的问题,但由于应用程序可能在我们无法控制的环境中运行,因此可能并不总是能够做到这一点.

【问题讨论】:

    标签: mef extensibility


    【解决方案1】:

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

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

    MEF 无法帮助您解决此问题。但也许可以编写自己的ExportProvider 实现来处理部分或全部。

    编辑:Piotr Włodek 的 IsolatingCatalog 看起来很有前途。

    【讨论】:

    • 感谢您的回复 - 我会看看它是否满足我的需求。
    • 关于 IsolatingCatalog 的信息很有用,尽管我怀疑性能成本(在我的应用程序中)可能会排除跨进程或跨应用程序域的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2010-09-14
    • 2021-07-25
    • 1970-01-01
    相关资源
    最近更新 更多