【发布时间】:2012-02-20 23:25:25
【问题描述】:
在 PRISM 中,我有两个模块:
|_ ModuleA
| |_ViewA
| |_ViewModelA
| |_ModelA
|
|_ ModuleB
|_ViewB
|_ViewModelB
|_ModelB
我想要一个工厂设计,您可以在其中选择要在外壳中显示的模块(我正在使用 Unity)
我刚刚为模型创建了工厂设计,从来没有在 PRISM 中查看。
【问题讨论】:
在 PRISM 中,我有两个模块:
|_ ModuleA
| |_ViewA
| |_ViewModelA
| |_ModelA
|
|_ ModuleB
|_ViewB
|_ViewModelB
|_ModelB
我想要一个工厂设计,您可以在其中选择要在外壳中显示的模块(我正在使用 Unity)
我刚刚为模型创建了工厂设计,从来没有在 PRISM 中查看。
【问题讨论】:
设置它应该不会太难。在我的脑海中,您可能想要为您的模块导出(实现 IModule 并具有 ModuleExport 属性的类)添加某种友好的上下文名称,您将使用它来显示可用的模块。然后反映所有加载的程序集并找到您的 ModuleExports,切换到允许您获取友好名称的自定义界面(例如 IMyModuleInfo)。您可以将所有这些反射代码放在 Shell 的 ViewModel 中,您可以从中返回 IMyModuleInfo 列表,绑定到您想为用户显示的任何 Shell 列表。您可以使用您的 IModule 实现作为视图工厂,或者您可以让 IMyModuleInfo 返回程序集名称,您可以从中反映所有可用的视图。
希望对您有所帮助。
【讨论】: