我开发了一个Microsoft Prism 4.0应用程序,我很难理解如何使模块可以使用用户应用程序设置功能。</ p>
e.g。一个Properties.Settings.Default.MyProperty。
我可以定义一个简单的类,它通过引导加载程序填充(它有一个属性的句柄)并将其注入模块但是如果我想保存属性的更改,我需要相信我需要一个句柄来我的模块(简单的类库)无法使用的Properties.Settings上下文。
答案 0 :(得分:4)
您的场景听起来像是使用“服务”课程的完美理由。创建一个名为IUserSettingsService和UserSettingsService的接口和类,它具有该信息(或者可以从存储它的位置加载并保存它)。
阅读Prism 4.0帮助文件的第3章,管理组件之间的依赖关系,使用(使用Unity或MEF注册类型,取决于您用作DI容器的内容)。
然后,在需要用户设置的ViewModel中,找到并使用您的服务。在MEF中,只需添加IUserSettingsService类型的属性和[Import]属性,或使用[ImportingConstructor]并具有IUserSettingsService类型的参数即可。使用Unity,您可以通过容器访问服务。请参阅Prism帮助文件的第10章 - 高级MVVM方案。
评论讨论后添加: 因为您需要将服务放在主应用程序的上下文中,所以可以在那里实现服务类。在共享库中为服务创建接口,主项目和模块都可以使用该接口。最后,在bootloader类而不是模块中加载服务。