刚开始使用 Prism 并依靠 MSDN 文档来教我 - 关于模块的主题,现在有一些段落特别让我感到困惑
“加载和初始化模块后,无法卸载模块程序集,因为 Prism 不会持有模块实例引用,因此模块类实例可能在初始化完成后被垃圾回收”
和
“默认情况下,模块实例生命周期是短暂的——在调用 Initialize 后,释放对模块的引用。如果您不手动建立到模块实例的强引用链,它将被垃圾回收”
我对此有点困惑 - 这意味着什么?
IModule 派生类是您的类库的实际实现,还是它只是负责 Prism 加载您的实际类库的元数据类,一旦您的程序集加载到 AppDomain 中,您就可以从中调用代码随时?
我很困惑 - 现在,我从这两段中得出的结论是,每次在整个 Prism 应用程序中使用模块时都需要重新实例化它们?
最佳答案
派生自 IModule
的类应包含一次性初始化代码,例如向区域注册 View 。加载模块时,将创建 IModule
派生类的实例,调用 Initialize
方法,然后认为模块已加载。 IModule
派生类的实例在初始化后丢失,但模块仍然可以访问。
底线:不,每次使用时不必重新加载/初始化模块。它只加载/初始化一次,然后就应该全部设置好。
关于wpf - Prism MVVM - 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11749497/