【问题标题】:What is the difference between Xamarins.Essentials and Xamarin.Forms DependencyServiceXamarins.Essentials 和 Xamarin.Forms DependencyService 有什么区别
【发布时间】:2020-08-29 16:47:52
【问题描述】:

我是 Xamarin 的新开发人员,我在猜测 Xamarins.Essentials 和 Xamarin.Forms DependencyService 之间有什么区别?

我了解 Xamarins.Essentials 是一个提供跨平台 API 的框架,以便使用地理位置、连接性等... 而 DependencyService 是 Xamarin.forms 中的功能,以便使用 Android 或 iOS 平台功能。

我的理解对吗? 还有其他区别吗?

感谢您的帮助, 克莱门特

【问题讨论】:

    标签: c# xamarin xamarin.forms xamarin.essentials


    【解决方案1】:

    你是完全正确的。

    DependencyService 用于向您的共享项目“展示”本机功能。基本上,您在特定于操作系统的项目中编写“本机”代码,通过依赖注入可以在您的共享项目中使用这些代码。 您可以在官方文档中阅读更多有关 DependencyService 的信息 - Introduction & Registration & Resolution

    Xamarin.Essentials 是您必备的工具包。它支持从地理位置到电池和首选项的任何内容。 Essentials 的好处是它可以去除所有不使用的代码。因此,即使它具有许多功能,在构建和归档期间,它也只会留下通过您的代码引用的内容。 Essentials 也是开源的 - repo

    基本上,当涉及到选择时 - 如果它内置在 Essentials 中 - 使用 Essentials。如果不是,自己写代码,通过DependencyService公开。

    【讨论】:

      【解决方案2】:

      Essentials 是帮助类的集合,这些类允许执行核心 Xamarin Forms 库中没有的事情。其中许多与利用平台特定行为有关。

      DependencyService 轻量级是Dependency Injection 工具。在 Forms 中,它通常用于访问特定于平台的行为。

      如果 Essentials 可以做到,请使用 Essentials。如果没有,你必须自己写,你可能会使用DependencyService

      【讨论】:

        【解决方案3】:

        是的。 Xamarin.Essentials 用于封装应用程序需要与平台硬件进行的许多交互,不幸的是(在撰写本文时)它不包含任何蓝牙功能。

        Xamarin DependencyService 是一个支持基本依赖注入的框架实现,以便您的通用应用代码可以更轻松地与特定于平台的实现进行交互。

        我认为大多数应用程序开发人员可能会使用更通用的第三方包来处理依赖注入,例如Prism、Unity Container、AutoFac 等

        【讨论】:

          猜你喜欢
          • 2015-11-19
          • 2021-07-31
          • 2014-08-18
          • 2023-03-20
          • 2010-10-02
          • 2011-12-12
          • 2010-09-16
          相关资源
          最近更新 更多