Prism MVVM - 模块

时间:2012-07-31 21:47:43

标签: wpf mvvm prism

刚开始使用Prism并依靠MSDN文档来教我 - 特别是那些段落让我很困惑,关于模块的主题

"加载并初始化模块后,无法卸载模块程序集,因为Prism不会保存模块实例引用,因此初始化完成后模块类实例可能会被垃圾收集"

"默认情况下,模块实例生存期是短暂的 - 调用Initialize后,将释放对模块的引用。如果您不手动建立模块实例的强引用链,它将被垃圾收集"

我对此有点困惑 - 这有什么含义?

IModule派生类是类库的实际实现还是只是负责Prism加载实际类库的元数据类,一旦将程序集加载到AppDomain中,就可以从中调用代码随时?

我感到很困惑 - 现在,我从这两段中得到的结论是,每次在Prism应用程序中使用模块时都需要重新实例化模块?

1 个答案:

答案 0 :(得分:3)

派生自IModule的类应包含一次性初始化代码,例如使用区域注册视图。加载模块时,会创建IModule派生类的实例,调用Initialize方法,然后将模块视为已加载。 <{1}}派生类的实例在初始化后丢失,但模块仍可访问。

底线:不,每次使用时都不需要重新加载/初始化模块。它只加载/初始化一次然后应该全部设置。