如何在 PCL 中引用 System.Net.Sockets.Socket
Posted
技术标签:
【中文标题】如何在 PCL 中引用 System.Net.Sockets.Socket【英文标题】:How to reference System.Net.Sockets.Socket in PCL 【发布时间】:2017-02-04 20:33:52 【问题描述】:我一直在为 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】:如果应用只支持 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
【讨论】:
非常感谢!我花了一些时间,但现在它适用于 .net 标准。以上是关于如何在 PCL 中引用 System.Net.Sockets.Socket的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xamarin ios pcl 中使用 protobuf-net