您好我有一个使用MVVM模式和Prism设计的Silverlight应用程序。
它有许多模块,我只想在用户通过身份验证后加载。
为此,我创建了一个登录模块,它接受客户端凭据并处理身份验证。一旦用户通过身份验证,我就会希望MEF加载其余的模块。我的问题是如何实现这一目标?
模块目录在xaml中定义,除登录模块之外的所有模块都设置为OnDemand初始化。据我所知,模块只能从shell加载,这在我的情况下不起作用,因为它们的加载调用将来自loginmodules视图模型。
非常感谢任何想法,谢谢。
答案 0 :(得分:2)
Prism提供了一个IModuleManager,您可以通过MEF或Unity导入,然后用于加载模块。
[ImportingConstructor]
public MyViewModel(IModuleManager moduleManager)
{
this.moduleManager = moduleManager;
this.moduleManager.LoadModule("ModuleA");
}