0

我一直在为Android,Ios和UWP开发应用程序。 因为我需要套接字连接,所以我使用DependenyService来访问“特定于平台”的代码,并开始在所有3个项目中实现我的接口。如何在PCL中引用System.Net.Sockets.Socket

问题是,所有3个项目的实现完全相同,因为它们全都使用System.Net.Sockets.Socket。 但是我不能简单地将实现代码放在我的PCL中,并将其用于所有3,因为我不能在我的PCL中引用System.Net.Sockets.Socket。 (不退出有)

This picture shows the targeting section of my PCL

我认为这个问题是我的PCL目标ASP.NET 1.0的核心,它不包含一个API,用于System.Net.Sockets.Socket。 但是,我无法告诉我的PCL停止目标ASP.NET Core 1.0,因为它自动定位。

有没有人有一个想法,我只能在Android,Ios和UWP之间共享代码,或者让我的PCL只针对他们?

回答

3

如果应用程序只应支持iOS,Android和UWP,则可切换到2016年的PCL和未来称为.NET标准(> = 1.3)的PCL。

在PCL的属性中,单击Target .NET Platform Standard并选择1.3或更高版本。如果你没有这个选项,你必须安装/更新一些东西。要求在这里列出:https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/libraries

enter image description here

当你这样做,你就可以使用套接字没有使用像工厂或依赖注入(这是替代品)的模式。


或者你使用套接字插件:https://www.nuget.org/packages/rda.SocketsForPCL

+0

非常感谢你!我花了一些时间,但现在它与.net标准一起工作。 –