棱镜模块生命周期

时间:2011-01-10 22:52:58

标签: silverlight prism

我开发了一个Silverlight prism项目来复制内存泄漏。只是想知道棱镜模块的生命周期。

如果在模块中我注册了一个视图,那么当模块不再使用时视图会被破坏吗?

每个模块是否共享相同的依赖容器(例如,统一)或每个模块是否都有一个单独的?

我在这里有一个更深入的问题,

https://stackoverflow.com/questions/4652364/memory-usage-is-suspect-when-loading-prism-modules

我试图了解打开和关闭棱镜模块时内存使用的一些差异。

1 个答案:

答案 0 :(得分:1)

1)视图被销毁的时间点取决于您将视图注册到容器的方式。如果在注册期间没有更改对象生命周期,那么当GC找到它时它将被销毁,而不会引用任何对象。如果在注册期间明确指定了生命周期管理器,则视图将被销毁,具体取决于管理器管理的特定生命周期。例如:当您使用Unity容器并使用ContainerControlledLifetimeManager注册视图时,视图会在容器被销毁时被销毁。

2)只要您不为自己的每个模块制作子容器,所有模块共享一个容器。