Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果调用者没有使用Xamarin.Forms,那么Xamarin依赖项服务可以工作吗?_C#_.net_Xamarin_Xamarin.forms - Fatal编程技术网

C# 如果调用者没有使用Xamarin.Forms,那么Xamarin依赖项服务可以工作吗?

C# 如果调用者没有使用Xamarin.Forms,那么Xamarin依赖项服务可以工作吗?,c#,.net,xamarin,xamarin.forms,C#,.net,Xamarin,Xamarin.forms,简单的问题是,如果调用方不是基于Xamarin.Forms的,或者甚至不是基于Xamarin的,那么Xamarin.Forms依赖项服务仍然可以获得调用方的平台吗 现在是问题的设置。我有两个应用程序项目,Android和Windows UWP。出于各种原因,我不需要iOS,也不能使用Xamarin.Forms。因此,我有一个本地UWP应用程序和Xamarin.Android。这两个标准仍然可以与PCL或更好的.NetStandard共享大量代码 如果我正在创建库,就像我在松散地关注这篇文章一样,

简单的问题是,如果调用方不是基于Xamarin.Forms的,或者甚至不是基于Xamarin的,那么Xamarin.Forms依赖项服务仍然可以获得调用方的平台吗

现在是问题的设置。我有两个应用程序项目,Android和Windows UWP。出于各种原因,我不需要iOS,也不能使用Xamarin.Forms。因此,我有一个本地UWP应用程序和Xamarin.Android。这两个标准仍然可以与PCL或更好的.NetStandard共享大量代码

如果我正在创建库,就像我在松散地关注这篇文章一样,并且像这样的库的调用者是Xamarin。Android或UWP(即不是Xamarin表单)库中的依赖项服务还会知道调用者的平台吗?底线是,在库中,我需要知道哪个平台正在使用或调用库,以便我可以在库中执行特定于平台的代码

作为这个问题的后续,我看到的许多依赖项服务示例都使用PCL。既然每个人似乎都在从PCL转向.NetStandard库,那么如果该库是.NetStandard库,是否可以实现同样的目标


谢谢

如果您没有使用Xamarin表单库,那么您将无法访问
DependencyService


您可以使用许多其他DI库中的一个,例如与.NET标准项目兼容的DI库。

因此我可以在库中执行特定于平台的代码。如果您使用PCL/NetStd库,根据定义,它们是独立于平台的,那么这些库就没有意义了。但是如果您需要知道调用者的平台,那么在方法或.ctor的参数内传递它,或者从UWP/Android设置公共静态变量。您可以使用
DependencyService.cs
而不使用表单吗?当然,这是一个非常简单的基于属性的DI服务,您可以从githib repo中提取代码(和属性)`在正常用例中,您在共享PCL中有一个接口,具体实现是在平台代码中完成的。在表单中,几乎所有的代码都可以在PCL中完成,因此重要的是存在DI服务,以便在需要的地方获得平台实现。。。因为我不明白你怎么能把任何用户界面放到。net标准库,共享时没有一些荒谬的工作。你需要分开一些顾虑。谢谢你们的评论。让我澄清一下,当我在跟踪我的帖子中提供的链接时,我说错话了。.NetStandard或PCL库将独立于平台。然而,在我创建库的解决方案中,我还将拥有一个Android类库和一个UWP类库。我将在PCL库中有一个接口,平台特定库将实现该接口。我将在这里编写特定于平台的代码(即访问文件系统)。因此,遵循这种常见模式,我只是想知道如果不使用Xamarin.forms,如何进行DI或IoC(它们是一样的吗?)。