如何在运行时更改模块?我有带有命令绑定的功能区菜单。在菜单项上单击我想在表单上更改模块。
答案 0 :(得分:0)
AFAIK Prism模块只是在通用应用程序域中加载的程序集,因此无法卸载特定程序集(.NET Framework限制)。
PS:
为什么不考虑将Prism作为一个选项加载到单独的AppDomain中,这样所有模块都可以很好地隔离,Load/Unload
也可用。我相信这对于具有可靠性的关键优先级要求的企业解决方案来说是一个很大的好处,因为当多个程序集加载到同一个AppDomain中时 - 一个程序集中的错误可能会导致整个AppDomain崩溃,从我的角度来看,这对于健壮可靠的应用程序来说是不可接受的。很高兴默认拥有“每个组件的模块”,但是附加选项“每个AppDomain模块”会很棒。也许我错过了重要的事情?有趣的是知道为什么每个程序集的模块,而不是每个AppDomain。