我没有使用Microsoft的MEF,并且我有我的原因不这样做。就让它保持这种状态吧。
问题在于,当插件被加载时,无论它们对主程序及其表单/类等多么“盲目”,它仍然可以访问System.Windows.Forms.Application,并因此可以访问我的应用程序及其当前运行的表单/方法/控件等。
我不希望出现这种情况。有没有一种方法来限制插件对主应用程序的访问?
编辑:关于插件的更多信息
我们(我的老板和我)目前正在讨论插件需要做什么。它们都显然需要添加功能,但我们最初决定为每个插件提供对当前运行的表单的访问权限,以便它可以直接向表单添加控件和事件。这是基于假设只有我们开发人员会编写它们的前提下。
现在我们正在考虑第三方插件的可能性,而最初的设计显然像一扇敞开的门上挂着一个“禁止进入”标志或者万圣节上挂着一个碗里放着单独的彩虹糖果,上面写着“拿走一个”。