wpf - Prism MVVM - 模块

标签 wpf mvvm prism

刚开始使用 Prism 并依靠 MSDN 文档来教我 - 关于模块的主题,现在有一些段落特别让我感到困惑

“加载和初始化模块后,无法卸载模块程序集,因为 Prism 不会持有模块实例引用,因此模块类实例可能在初始化完成后被垃圾回收”

“默认情况下,模块实例生命周期是短暂的——在调用 Initialize 后,释放对模块的引用。如果您不手动建立到模块实例的强引用链,它将被垃圾回收”

我对此有点困惑 - 这意味着什么?

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

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

最佳答案

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

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

关于wpf - Prism MVVM - 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11749497/

相关文章:

c# - 获取项目内 ObservableCollection 中项目的索引

c# - WPF 文本框接受 INT 但不接受 NULLABLE INT?

c# - 将不同的集合绑定(bind)到数据网格

c# - 在哪里可以找到 Prism.UnityExtensions

c# - C#中的毫秒级精确定时器

c# - wpf-单击按钮时动态创建新文本框和文本 block 并将其添加到网格行

design-patterns - 在 MVVM 中, View 应该知道模型吗?

c# - Prism 事件聚合器。接收事件并再次发送

c# - 可以将参数传递给 WPF 用户控件吗?

mvvm - 什么时候应该注册我的 Prism 服务?