我正在开发一个Silverlight 4项目,我得到内存泄漏,因为每次加载一些xaml视图时,他们都会创建自己的类实例,然后将其与事件触发器挂钩并且不会收集垃圾。在这种情况下,删除事件监听器已经证明过于棘手,我可以这样处理它。所以我希望每次加载xaml视图时都重复使用该类的实例。
为此,我计划在每个项目中添加一个资源字典,发生此错误。我担心的是,我不知道何时会创建此资源字典。当解决方案首次加载时,它会加载项目然后加载资源字典,立即创建要使用的类吗?或者它会等到有什么要求它然后创建它。实际发生的事情是否会创建一个类的副本,每个访问它的人都会重复使用它(如不是另一个副本)?
我也意识到我可以将资源放在app.xaml中,但是我需要添加许多这样的类,它会使这个问题无法解决。
答案 0 :(得分:1)
使用Christian Moser的SharedResourceDictionary来避免加载字典本身的第二个副本或其包含的任何内容。这为我们节省了许多控件的大量加载时间。