这个问题可能只能由CM撰稿人回答。
ViewAware
是IViewAware
的基本实现,它使用内部实用程序类WeakValueDictionary
来缓存视图。 IViewAware
的外部实现者无法访问此类。
CM 1.5.x依赖于Dictionary<object, object>
来实现缓存。
我无法在代码中看到CM 2.0中的任何依赖项,在实现WeakValueDictionary
时需要使用IViewAware
。
我只是想确保我没有遗漏一些微妙的东西?在实施WeakValueDictionary
时,我是否必须使用IViewAware
,或Dictionary<object, object>
是否仍然足够?
答案 0 :(得分:1)
Dictionary<object, object>
就可以了。 IViewAware
没有办法清除视图。在内置类Screen
中清除Deactivate
上的视图,只要您将视图模型组合在一起就会发生。
使用WeakValueDictionary
为我们提供了一些蠕动空间,这意味着我们不会继续使用不再使用的视图。
我们当然可以考虑提供WeakValueDictionary
来帮助解决这个问题。