WPF 跨应用程序域的插件与 UI

2017-11-15 10:49:01来源:https://walterlv.github.io/post/wpf-add-on-ui.html作者:walterlv人点击

分享

为自己写的程序添加插件真的是一个相当常见的功能,然而如果只是简单加载程序集然后去执行程序集中的代码,会让宿主应用程序暴露在非常危险的境地!因为只要插件能够运行任何一行代码,就能将宿主应用程序修改得天翻地覆哭爹喊娘;而根本原因,就在于暴露了整个托管堆和整个 UI 树。


本文将通过隔离宿主与插件到不同应用程序域中以解决这样的潜在安全性问题。使用本文的方法,不止支持跨域调用,还支持跨域 UI。


.NET Framework 自 3.5 以来推出了 System.AddIn 程序集,将宿主和插件隔离在不同的应用程序域中,避免插件对宿主造成不良影响。


相关资料较少,不过我在 GitHub 上找到了一个比较完善的例子程序 ENikS/System.AddIn: Projects related to Microsoft System.AddIn 。


正在研究中,未完待续……


参考资料

ENikS/System.AddIn: Projects related to Microsoft System.AddIn
WPF Add-Ins Overview - Microsoft Docs
Walkthrough: Creating an Extensible Application - Microsoft Docs
Add-ins and Extensibility - Microsoft Docs

本文会经常更新,请阅读原文: https://walterlv.github.io/post/wpf-add-on-ui.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。


本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台