将 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)
从今天开始,我评论了它,应用程序仍然可以在 ios 和 android 中正常启动。
最好的问候
基础粉碎机
【问题讨论】:
【参考方案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 在 Xamarin Forms 的后台服务中实现依赖注入
Xamarin.Forms+Prism—— 简单提示UI的使用
Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系