我正在尝试构建一个 portable class library面向充当 OData 客户端的 .NET、Silverlight、Windows RT 和 Windows Phone。我正在使用 Visual Studio 2012。
当我创建对我的 OData 服务器端的服务引用时,我收到以下错误消息:
Unable to add a service reference to the specified OData feed because WCF Data Services is not installed for this target framework. To install a supported version of WCF Data Services, see http://go.microsoft.com/fwlink/?LinkId=253653.
当我转到错误消息中列出的 URL 时,我可以在适用于 Windows RT 的库和适用于 Windows Phone 的库之间进行选择,因此这似乎不适用于可移植类库。
对此是否有任何 secret 解决方法,或者我是否必须使用裸 HTTP 请求编写自己的 Odata 客户端?
另外,如果我必须使用裸 HTTP 请求,是否至少有某种 API 可以构建在可移植类库中的 json 或 xml 序列化/反序列化?
谢谢,
阿德里安
最佳答案
实际上我有一个用于 OData (Simple.OData.Client) 的可移植类库,但还没有为它制作 NuGet 包。它是 Simple.Data OData 适配器的一部分。
我在计划移植到各种平台的应用程序中使用 Simple.OData.Client PCL,包括 iOS 和 Android(使用 Xamarin)。如果您有兴趣尝试一下,我建议您选择以下两种选择之一:
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),但需要更长的时间。
如果您有兴趣,请告诉我。
关于.net - 我可以在可移植类库中使用 OData 客户端代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673970/