Catel 延迟加载包含视图/视图模型的程序集
Posted
技术标签:
【中文标题】Catel 延迟加载包含视图/视图模型的程序集【英文标题】:Catel delay loading an assembly containing views/view models 【发布时间】:2014-03-14 21:12:03 【问题描述】:我有一个 WPF 应用程序,其中很大一部分视图不会每天使用 - 想想维护窗口。我的想法是,将这些窗口的视图和视图模型移动到一个单独的程序集中,该程序集仅在其中一个显示时才加载,这样可以缩短启动时间并减少应用程序的内存占用。
首先,这样做合理吗?
如果是这样,完成此任务的最佳“Catel”方法是什么?我可以使用 MEF,但它似乎不支持开箱即用的延迟加载程序集;它在构建目录时加载程序集。 Unity 是否允许延迟加载? Catel 的 ServiceLocator/DependencyResolver 有吗?
【问题讨论】:
【参考方案1】:没有必要“延迟加载”带有视图的程序集,因为 Catel 没有预加载视图。 Catel 将在需要时延迟加载视图并缓存结果。这意味着第一次加载视图和视图模型时会有轻微(不明显)的影响。
将视图/视图模型放在单独的程序集中的唯一原因是为了关注点分离/保持程序集易于管理。
【讨论】:
以上是关于Catel 延迟加载包含视图/视图模型的程序集的主要内容,如果未能解决你的问题,请参考以下文章
延迟加载 UICollectionViewCell 的自定义子视图