2

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

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

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

谢谢你的帮助,克莱门特

4

3 回答 3

1

Essentials是帮助程序类的集合,允许执行未包含在核心 Xamarin Forms 库中的事情。其中许多与利用平台特定行为有关。

DependencyService轻量级是一个依赖注入工具。在 Forms 中,它通常用于访问特定于平台的行为。

如果 Essentials 可以做到,请使用 Essentials。如果没有并且您必须自己编写,您可能会使用DependencyService.

于 2020-05-13T13:16:09.550 回答
1

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

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

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

于 2020-05-13T13:25:06.097 回答
1

你是完全正确的。

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

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

基本上,当涉及到选择时——如果它内置在 Essentials 中——使用 Essentials。如果不是,请编写您自己的代码并通过DependencyService.

于 2020-05-13T13:18:41.097 回答