aku*_*aku 12 .net wpf code-injection
优点:
缺点:
优点:
缺点:
优点:
缺点:
我将使用方法#1.你能推荐一个更好的方法吗?
在非托管DLL中是否有基于CLR托管的体面技术?
请注意,我知道这些问题:
由于用户对近 9 年前提出的问题提出了公开悬赏,我将添加一个我在类似项目中使用过的更新选项:
WPF 的 Prism 框架有很好的文档记录并且很可靠。现在我不确定它是否与 Vista 兼容(最初的请求是 9 年前),我也不确定这是否不再重要。它在其统一引导程序类中包含一个非常类似于 MEF 的函数,以便您动态加载它们所谓的模块类库(实际上只是 XAML 容器)。
因此,您构建模块类库,并在 WPF shell 运行时扫描容器应用程序中的模块目录以查找任何模块程序集,并通过模块目录(Unity Bootstrapper 的方法)通过预定区域动态加载到主机容器中。(听起来真的很像 MEF 吧?)
现在 Brian Lagunas ( http://brianlagunas.com ) 发布了一个示例,进一步推进了这一点。他的模块目录实现不断扫描目录,以便在添加 dll 时(在 shell 运行时期间),它会拾取文件并处理它们,这实际上使您能够动态添加托管代码。向 WPF shell 添加一个上传按钮,该按钮指向模块目录并利用 Prism 的事件聚合器,并且每当加载新模块时,您都可以翻转 shell 的主标题。
以下是 Brian 讨论在运行时加载模块的帖子的链接: http://brianlagunas.com/prism-dynamically-discover-and-load-modules-at-runtime/
链接到 GitHub 示例: https ://github.com/brianlagunas/DynamicallyDiscover-LoadModules/
如果您从未使用过 Prism,那么强烈建议您观看 Brian 的速成课程视频。大约 120 分钟,即使版本稍微过时,也能让您快速掌握 Prism。 http://brianlagunas.com/infragistics-webinar-mvvm-made-simple-with-prism-sample-code/