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 的自定义子视图

Android:延迟加载 DataBinding 视图会引发异常

Flutter/Dart - 延迟后打开视图

在 viewDidLoad 之前延迟表视图加载或加载数组?