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標準一起工作。 –