0

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

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

这张图片显示了我的 PCL 的目标部分

我认为问题在于我的 PCL 以 ASP.NET Core 1.0 为目标,它不包含System.Net.Sockets.Socket. 但是,我不能告诉我的 PCL 停止目标 ASP.NET Core 1.0,因为它会自动成为目标。

那么有谁知道我如何只能在 Android、Ios 和 UWP 之间共享代码,或者让我的 PCL 只针对它们?

4

1 回答 1

3

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

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

在此处输入图像描述

完成此操作后,您就可以使用 Sockets,而无需使用工厂或依赖注入等模式(它们是替代方案)。


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

于 2016-09-27T09:59:03.080 回答