2013-12-22 61 views
1

我正在開發一個針對windows 8.1(windows store應用程序)和windows phone 8的項目。需要創建和接收TCP/UDP數據包的庫。在(PCL)可移植類庫中使用Windows.Networking

我有一段代碼適用於每個WP8和Windows 8.1(使用完全相同的代碼)。然而,當我想要把這個代碼在便攜式類庫突然某些使用指令不承認任何更多:

using Windows.Networking; 
using Windows.Networking.Connectivity; 
using Windows.Networking.Sockets; 

我明白PCLS只有該框架之間重疊的功能集然而,由於這些指令的工作Windows 8.1類庫和WP8庫中,我的印象是我應該能夠創建一個PCL。

我錯在哪裏?如果真的沒有辦法將它們結合到PCL中,我怎麼能在不保留/維護每個目標的重複代碼的情況下處理這個問題?

回答

2

這些是WinRT API,PCL目前不支持。您可以在此投票選擇此功能:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4443287-make-winrt-api-usable-in-portable-class-libraries-

您現在的主要選項是放棄PCL,或者爲此功能和每個平臺的實現創建一個可移植的抽象(在這種情況下,每個平臺的代碼將是相同並且可以通過鏈接文件共享)。

+0

感謝您的回覆。你能指出我有關這些「鏈接文件」的來源嗎?這個詞對我來說並不熟悉。 – leepfrog

+1

@leepfrog:鏈接文件意味着在多個項目中編譯相同的源文件,可能使用條件編譯(#if)來解決平臺差異問題。您可以使用「添加現有項目」對話框中的「添加爲鏈接」在Visual Studio中進行設置。以下是Xamarin提供的一些指南:http://docs.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/sharing_code_options/ –

+0

感謝您的解釋和參考,我會試一試!非常感謝。 – leepfrog

相關問題