.net - 我可以在可移植类库中使用 OData 客户端代码吗?

标签 .net api wcf-data-services odata portable-class-library

我正在尝试构建一个 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/

相关文章:

.net - 构建 'flat'而不是 'tree' LINQ表达式

wcf-data-services - Wcf 数据服务 : How to handle case insensitive queries

c# - 如何从 Regex.Split 中获得正确的结果

.net - 将 AutoFac 设置为默认使用 PropertiesAutowired(true)?

.net - 如何识别第三方应用程序使用的控件?

javascript - 如何在 Postman 测试中更改用户名密码

javascript - 有没有好的 Web 前端绘制工具的开放 API?

api - 解析用户对象 ACL

c# - 对数字文字使用 f 后缀

.net - WCF 数据服务和 self 跟踪实体