Xamarin DependencyService与Device.OnPlatform

时间:2017-07-27 02:10:11

标签: xamarin xamarin.forms portable-class-library

有人能够解释在Xamarin PCL项目中使用DependencyService与Device.OnPlatform功能之间的区别吗?我有一个基本的概述,他们都是从阅读Xamarin的文档,但我仍然有点迷失的究竟是什么区别。他们似乎提供相同的功能,但也许我对这些功能完全错误的理解。

1 个答案:

答案 0 :(得分:2)

DependencyService允许您从特定于平台的库中提取和访问特定合同的本机实现到您的跨平台库中。

虽然,Device.OnPlatform允许您为跨平台库本身中的每个本机平台定义不同的操作。

如果您需要定义与本机OS框架(例如Xamarin.Android,Xamarin.iOS等)交互的特定于平台的行为/操作,那么您可以使用DependencyService来允许在共享代码中访问此行为。 例如:您可以使用它在便携式库中实现和使用设备状态帮助程序。

如果您需要定义不需要与本机框架交互但只需要与共享框架(例如Xamarin.Forms,RESX等)交互的特定于平台的行为/操作,那么您使用{{1}在共享代码中定义它们。 例如:您可以使用它为表单按钮定义特定于平台的样式。 (可以在C#和XAML中定义)