我可以在可移植類庫中使用 OData 客戶端程式碼嗎?
我正在嘗試建構一個面向 .NET、Silverlight、Windows RT 和 Windows Phone 的可移植類庫,充當 OData 客戶端。我正在使用 Visual Studio 2012。
當我創建對我的 OData 伺服器端的服務引用時,我收到以下錯誤消息:
無法添加對指定 OData 源的服務引用,因為沒有為此目標框架安裝 WCF 數據服務。要安裝受支持的 WCF 數據服務版本,請參閱 http://go.microsoft.com/fwlink/?LinkId=253653。
當我轉到錯誤消息中列出的 URL 時,我可以在 Windows RT 庫和 Windows Phone 庫之間進行選擇,因此這似乎不適用於可移植類庫。
是否有任何秘密解決方法,或者我是否必須使用裸 HTTP 請求編寫我自己的 Odata 客戶端?
此外,如果我必須使用裸 HTTP 請求,是否至少有某種 API 可以在可移植類庫中工作的 json 或 xml 序列化/反序列化建構?
謝謝,
阿德里安
實際上我有一個用於 OData (Simple.OData.Client) 的可移植類庫,但還沒有為它製作 NuGet 包。它是 Simple.Data OData 適配器的一部分。
我在計劃移植到包括 iOS 和 Android(使用 Xamarin)在內的各種平台的應用程序中使用 Simple.OData.Client PCL。如果您有興趣嘗試一下,我建議您選擇以下兩種選擇之一:
a)複製 Simple.Data.OData 儲存庫(https://github.com/simplefx/Simple.OData),切換到“winrt”分支,建構它,那裡有 Simple.OData.Client,它是最支持 PCL的平台。Wiki 目前描述 Simple.Data 適配器語法,因此您需要查看 Simple.OData.Client 測試(https://github.com/simplefx/Simple.OData/tree/master/Simple.OData.Client.Tests)以了解句法。它支持兩種語法風格:當您自己格式化過濾器字元串時,以及當您使用其流暢的 API 時。它們都非常易於使用。
b) 我可以加快處理 PCL 的 NuGet 包的工作(目前上傳的 NuGet 包只支持 NET4),但需要更長的時間。
如果您有興趣,請告訴我。