将 Xamarin Forms 与 Prism 一起使用时,“public App() : this(null) ”有啥作用

Posted

技术标签:

【中文标题】将 Xamarin Forms 与 Prism 一起使用时,“public App() : this(null) ”有啥作用【英文标题】:What does "public App() : this(null) " do when using Xamarin Forms with Prism将 Xamarin Forms 与 Prism 一起使用时,“public App() : this(null) ”有什么作用 【发布时间】:2020-05-25 14:32:08 【问题描述】:

所以我只是想知道为什么在 Prism Doc 和 VS 模板中这一行包含在 App Class 中。

public App() : this(null)

从今天开始,我评论了它,应用程序仍然可以在 iosandroid 中正常启动。

最好的问候

基础粉碎机

【问题讨论】:

【参考方案1】:

如果您不需要/想要IPlatformInitializer,可以传递null,默认实现会这样做。

我猜里面的代码是为了提醒您,如果您需要/想要,可以传递IPlatformInitializer

【讨论】:

【参考方案2】:

“使用 Xamarin.Forms,您可能已经阅读了如何在特定于平台的代码中为实施类型添加 Dependency 属性,然后使用 Xamarin.Forms DependencyService 解决它。这被认为是一个主要的反模式,应该是当您使用适当的依赖注入容器时避免使用。正是由于这个原因,Prism 已经放弃了从 Prism 7.0 开始对使用 DependencyService 的所有支持。从 Prism 6.3 开始,引入了 IPlatformInitializer。这使您可以轻松地使用 Prism 注册类型容器。”

https://prismlibrary.com/docs/xamarin-forms/dependency-injection/platform-specific-services.html

【讨论】:

您描述了我回答的“想要/需要”的情况,如果您没有特定于平台的代码,那就是“不需要”的情况。如果你是一个怪胎并且在服务定位器上茁壮成长,那就是“不想要”的情况:-) 是的,我同意你的观点,我投票支持你的答案,我只是想补充文档。

以上是关于将 Xamarin Forms 与 Prism 一起使用时,“public App() : this(null) ”有啥作用的主要内容,如果未能解决你的问题,请参考以下文章

走进 Prism for Xamarin.Forms

使用 Prism 在 Xamarin Forms 的后台服务中实现依赖注入

Xamarin.Forms+Prism—— 简单提示UI的使用

Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系

Xamarin.Forms FlyoutPage 不适用于 Prism

LINKs: Xamarin.Forms + Prism