4

我正在开发一个第三方开发人员可以编写插件的应用程序。我一直在研究 Managed Extensibility Framework,这似乎是正确的方法。

不过有一件事,我想阻止插件自由访问应用程序的其余部分(调用单例等),但希望限制通过某个接口进行通信,理想情况下,每个插件都必须“请求”不同事物的权限,例如访问其他插件和用户数据,有什么好方法可以做到这一点吗?

否则我唯一能想到的就是将安全字符串传递给每个方法并混淆代码,但这似乎是一个丑陋的解决方案:P

4

1 回答 1

4

您需要一个新AppDomain的作为插件的沙箱,但我认为 MEF 目前不支持将导出加载到单独AppDomain的文件中(如果不再是这种情况,我相信有人会纠正我)。

如果这对您来说是一个严重的问题,请考虑使用System.Addin命名空间中的位,并查看有关激活、隔离、安全和沙盒的部分以获取更多信息。它是 MEF 的更强大和安全的替代方案,但灵活性要差得多。

更新:Kent Boogaart 有一篇文展示了如何同时使用 MEF 和 MAF。

于 2009-12-12T13:28:16.493 回答