c# – 使用Odata服务并获得JSON结果

我正在使用DataServiceContext消费odata服务,并希望以json格式返回数据.

我看起来像这样:
Odata Query with DataServiceContext and get result as json

如果我尝试在发送请求事件中添加任何请求标头.我无法在小提琴手中看到那个标题.虽然事件是我已确认的射击.

我遇到了“context.Format.usejson”并尝试搜索它,但没有发现任何我能理解的东西.有人可以帮帮我吗?
Using ODataLib to call a WCF Data Services service operation and JSON

我的目标是使用DataServiceContext消费到OData服务并获得JSON格式的结果.

解决方法

注意:只有在服务的最大协议版本为3或更高版本时,这些步骤才有效. OData版本3引入了新的JSON格式,WCF数据服务客户端仅支持此JSON格式. (旧的JSON有效负载顶部有“__Metadata”和“d”:{…}.在新的JSON格式中,您会看到“odata.Metadata”,“odata.type”等内容. )

首先,确保您拥有版本5.1或更高版本的WCF Data Sevrices客户端库(Visual Studio附带较旧版本)以及在Visual Studio中使“添加服务引用”工作的工具的更新版本.

您可以在此处下载最新的工具安装程序:http://www.microsoft.com/en-us/download/details.aspx?id=35840.

安装完成后,我建议通过在NuGet包管理器控制台中发出以下命令来升级到最新版本的WCF Data Services客户端:

Install-Package Microsoft.Data.Services.Client

一旦升级到最新的客户端库,您应该能够在客户端中使用JSON而不会出现问题.在Visual Studio中右键单击您的项目,选择“添加服务引用”并输入服务的元数据文档的URL.在v5.1及更高版本中,这将拉下服务的完整模型,这是支持JSON所需的.

添加服务引用”将自动生成DataServiceContext的子类. (您可以通过在Visual Studio解决方案资源管理器中选择“显示所有文件”并展开服务引用后面的代码来查看此生成代码.)例如,当我对http://services.odata执行“添加服务引用”时.org / V3 / OData / OData.svc / $Metadata,客户端库生成一个名为DemoService的类.直接使用该派生类而不是DataServiceContext,您只需调用.Format.UseJson()即可.例如:

var context = new DemoService(new Uri("http://services.odata.org/V3/OData/OData.svc");
context.Format.UseJson();

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...