使用MEF Prism和Silverlight加载按需模块

时间:2011-09-13 14:40:49

标签: silverlight mvvm prism mef ondemand

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

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

为此,我创建了一个登录模块,它接受客户端凭据并处理身份验证。一旦用户通过身份验证,我就会希望MEF加载其余的模块。我的问题是如何实现这一目标?

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

非常感谢任何想法,谢谢。

1 个答案:

答案 0 :(得分:2)

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

    [ImportingConstructor]
    public MyViewModel(IModuleManager moduleManager)
    {
        this.moduleManager = moduleManager;
        this.moduleManager.LoadModule("ModuleA");
    }