您好我有一个使用 MVVM 模式和 Prism 设计的 Silverlight 应用程序。
它有许多模块,我只想在用户通过身份验证后加载。
为此,我创建了一个登录模块,它获取客户端凭据并处理身份验证。用户通过身份验证后,我希望 MEF 加载其余模块。我的问题是如何做到这一点?
模块目录在 xaml 中定义,除登录模块外的所有模块都设置为 OnDemand 初始化。据我所知,模块只能从 shell 加载,这在我的情况下不起作用,因为加载它们的调用将来自 loginmodules View 模型。
任何想法将不胜感激,谢谢。
最佳答案
Prism 提供了一个 IModuleManager,您可以通过 MEF 或 Unity 导入它,然后使用它来加载模块。
[ImportingConstructor]
public MyViewModel(IModuleManager moduleManager)
{
this.moduleManager = moduleManager;
this.moduleManager.LoadModule("ModuleA");
}
关于silverlight - 使用 MEF Prism 和 Silverlight 按需加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7403711/