如何在PCL中引用System.Net.Sockets.Socket

时间:2016-09-27 09:18:10

标签: xamarin xamarin.ios xamarin.android portable-class-library xamarin.uwp

我一直在为Android,Ios和UWP开发应用程序。 由于我需要套接字连接,因此我使用DependenyService访问“特定于平台”的代码,并开始在所有3个项目中实现我的界面。

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

This picture shows the targeting section of my PCL

我认为问题在于我的PCL针对的是ASP.NET Core 1.0,它不包含System.Net.Sockets.Socket的API。 但是,我无法告诉我的PCL停止目标ASP.NET Core 1.0,因为它会自动定位。

所以有人知道我如何才能在Android,Ios和UWP之间共享代码,或者让我的PCL仅针对它们吗?

1 个答案:

答案 0 :(得分:3)

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

在PCL的属性中,单击web_page <- tryCatch({ read_html(primary_link) }, error = function(e) { tryCatch({ read_html(secondary_link) }, finally = { # cleanup for second call }) }, finally = { # cleanup for both calls }) 并选择1.3或更高版本。如果您没有此选项,则必须安装/更新某些内容。要求列于此处:https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/libraries

enter image description here

完成后,您就可以使用套接字而不使用工厂或依赖注入等模式(可以选择)。

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