Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建使用可重新加载插件的WPF应用程序?_Wpf_Activex_Contextmenu_Appdomain_Hotswap - Fatal编程技术网

如何创建使用可重新加载插件的WPF应用程序?

如何创建使用可重新加载插件的WPF应用程序?,wpf,activex,contextmenu,appdomain,hotswap,Wpf,Activex,Contextmenu,Appdomain,Hotswap,我手头有一个有趣的问题 我需要创建一个WPF应用程序,它将承载多个UserControl。(应用程序正是这样做的-作为一个容器,具有用户控件的停靠功能) 该应用程序还将作为另一个热插拔组件托管UserControls的数据模型。(我计划为每个组件使用内部队列,以便可以交换组件。) 这些用户控件必须是可插拔的(这很容易),并且在运行时可以重新加载(这似乎很难/不可能)。(这里的答案似乎是AppDomains,但我不知道除了AppDomain对MarshallByValue和MarshallByRe

我手头有一个有趣的问题

我需要创建一个WPF应用程序,它将承载多个UserControl。(应用程序正是这样做的-作为一个容器,具有用户控件的停靠功能)

该应用程序还将作为另一个热插拔组件托管UserControls的数据模型。(我计划为每个组件使用内部队列,以便可以交换组件。)

这些用户控件必须是可插拔的(这很容易),并且在运行时可以重新加载(这似乎很难/不可能)。(这里的答案似乎是AppDomains,但我不知道除了AppDomain对MarshallByValue和MarshallByRefObject的限制之外还有哪些限制?“可重新加载的”在运行时,就像在热插拔中一样,在应用程序启动时关闭UI组件

我还希望UserControl上的上下文菜单包含来自主机的一些项和来自UserControl本身的一些项

我还可以在主机和用户控件之间无缝地控制焦点(更改焦点事件的边框颜色等)(在主机和用户控件之间切换)

顺便说一句,我还希望UserControl启用ActiveX,以便与Excel等ActiveX容器集成

这将使我能够灵活地运行UserControl本身(单元测试),在容器中(无缝导航并与容器和其他相关UserControls集成),以及作为ActiveX控件与ActiveX容器集成

我想知道这是否可能,是否有框架(MAF?)支持这一点。任何指向示例或文档的指针都会有所帮助

提前谢谢大家,, 问候,,
维恩

我一直在探索类似的场景。根据你的描述,MAF似乎是你最好的选择。包含正在运行的MAF的工具和示例。希望这有帮助