Prism / Unity是否有“服务预加载器”?

时间:2009-07-28 07:54:29

标签: unity-container prism composite

我在Prism应用程序中安装了许多模块,这些模块加载的数据需要 3-8秒才能从服务中获取。

我希望能够在我的 bootstrapper 中说出这样的话:

伪码:

Customers allCustomers = Preloader(Models.GetAllCustomers);

这将在后台线程中运行,当用户实际需要变量“allCustomers”时,它将完全加载。

在Prism / Unity中是否有自动服务进行此类预加载?

1 个答案:

答案 0 :(得分:1)

不,没有。

...然而

您可以考虑将ViewModel与ContainerControlledLifetime一起添加到您可以使用的ConfigureContainer方法中的容器中。您将在ViewModel的构造函数中启动线程请求,并允许Views将此ViewModel从Container中拉出。

即使他们在GetAllCustomers方法触发之前将ViewModel从容器中取出,如果您将客户存储在实现INotifyPropertyChanged中,他们也会被正确通知。

如果更合适,您也可以从模块(在Initialize方法中)而不是在引导程序中执行此操作(例如,如果您的模块实际上了解您的客户模型)。