1

您好我有一个使用 MVVM 模式和 Prism 设计的 Silverlight 应用程序。

它有许多模块,我只想在用户通过身份验证后加载。

为此,我创建了一个登录模块,它获取客户端凭据并处理身份验证。用户通过身份验证后,我希望 MEF 加载其余模块。我的问题是如何做到这一点?

模块目录在 xaml 中定义,除登录模块外的所有模块都设置为 OnDemand 初始化。据我所知,模块只能从 shell 加载,这在我的情况下不起作用,因为加载它们的调用将来自 loginmodules 视图模型。

任何想法将不胜感激,谢谢。

4

1 回答 1

2

Prism 提供了一个 IModuleManager,您可以通过 MEF 或 Unity 导入它,然后使用它来加载模块。

    [ImportingConstructor]
    public MyViewModel(IModuleManager moduleManager)
    {
        this.moduleManager = moduleManager;
        this.moduleManager.LoadModule("ModuleA");
    }
于 2011-09-13T18:13:31.180 回答