Xamarin.forms 感兴趣类中Prism模块的功能(Xamarin Foirms和#x2B;Prism)

Xamarin.forms 感兴趣类中Prism模块的功能(Xamarin Foirms和#x2B;Prism),xamarin.forms,prism,Xamarin.forms,Prism,你好 更新 我不明白如何使用模块逻辑从类访问Prism模块的功能 问题: 如何在PageAViewModel中访问IServiceA功能(在模块中定义)的实现(我忘记了这么做) 如果我想在许多不同的国家/地区使用此功能,而不必每次都加载模块,我如何管理模块a/ServiceA的生命周期(场景-加载应用程序时调用模块a/ServiceA,使用后卸载,在PageA/PageB/PageC上使用) 谢谢大家的回答! 祝您有个美好的一天! /对不起谷歌翻译/ prism应用程序的模块用于模块化代码

你好


更新

我不明白如何使用模块逻辑从类访问Prism模块的功能

问题:

  • 如何在PageAViewModel中访问IServiceA功能(在模块中定义)的实现(我忘记了这么做)

  • 如果我想在许多不同的国家/地区使用此功能,而不必每次都加载模块,我如何管理模块a/ServiceA的生命周期(场景-加载应用程序时调用模块a/ServiceA,使用后卸载,在PageA/PageB/PageC上使用)

谢谢大家的回答! 祝您有个美好的一天! /对不起谷歌翻译/


prism应用程序的模块用于模块化代码库。它们与视图或视图模型无关,而是将应用程序拆分为可以独立开发、测试和替换的组件。如何拆分应用程序取决于您

也许你应该复习一下

编辑:关于具体问题:

如何在PageAViewModel中访问IServiceA功能(在模块中定义)的实现(我忘记了这么做)

您创建了一个类型为
IService
的构造函数参数,prism将为您提供注册的实现:

internal class PageAViewModel
{
    public PageAViewModel( IService service )
    {
        service.DoStuff();
    }
}
如果我想在许多不同的国家/地区使用此功能,而不必每次加载模块,我如何管理模块a/ServiceA的生命周期

您不能也不需要管理
模块a
的生命周期,prism会负责这一点。至于,
ServiceA
您在注册时选择了生存期:

  • containerRegistry.Register()
    为每个页面创建一个新的服务实例
  • containerRegistry.RegisterSingleton()
    为所有页面创建一个服务实例

不幸的是,此文档是很久以前编译的,不受支持,而且在某些地方,它没有针对Xamarin.Forms的直接建议-通常需要猜测。我又看了一遍,仍然不明白该怎么做。如果你对我的任务有答案,请解释一下。谢谢。prism中的模块化概念已经很久没有改变了。如果你有更具体的问题,你应该更新你的问题。这很有效,非常感谢你的澄清和帮助-有时你只需要看一次例子就可以理解一个概念。非常感谢。编辑我的答案。。。所有这些都是非常基本的东西,不过,我真的建议你花几个星期阅读这些文档。