如何从 Silverlight 中的 WCF 数据服务、DataServiceQuery 调用获取 JSON?

发布于 2025-01-07 22:57:58 字数 880 浏览 0 评论 0原文

背景:我有一个带有 Silverlight 应用程序的 WCF 数据服务,该应用程序当前使用atom pub xml。我想使用 JSON 来减少有效负载的大小。 我读到您可以使用以下代码从服务 webget 获取 JSON:

WebClient wc = new WebClient();
wc.Headers["Accept"] = "application/json";

我可以修改 DataServiceQuery 调用或 localContext.BeginExecute (对于 WebGets)的标头吗?

// WCF Data Services Query Proxy
DataServiceQuery<T> query = filterExpression as DataServiceQuery<T>;

// Execute the ASYNC query against the model
query.BeginExecute(new AsyncCallback((iar) =>
{ ...});

或者

// Create new context with the WCF service to force only save this entity
VisiconnEDM localContext = new VisiconnEDM(new Uri(entityServiceURL, UriKind.Absolute));

// execute the query asynchronously 
localContext.BeginExecute<T>(urlQuery,(IAsyncResult iar) =>{ ...},null);

Background: I have a WCF Data Service with a Silverlight application that is currently using atom pub xml. I want to use JSON to lessen the size of the payload.
I read that you can JSON from the service webget using the following code:

WebClient wc = new WebClient();
wc.Headers["Accept"] = "application/json";

Can I modify the header for a DataServiceQuery call or a localContext.BeginExecute (for WebGets)?

// WCF Data Services Query Proxy
DataServiceQuery<T> query = filterExpression as DataServiceQuery<T>;

// Execute the ASYNC query against the model
query.BeginExecute(new AsyncCallback((iar) =>
{ ...});

or

// Create new context with the WCF service to force only save this entity
VisiconnEDM localContext = new VisiconnEDM(new Uri(entityServiceURL, UriKind.Absolute));

// execute the query asynchronously 
localContext.BeginExecute<T>(urlQuery,(IAsyncResult iar) =>{ ...},null);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两相知 2025-01-14 22:57:58

即使您修改 DataServiceRequest 的标头,WCF DS 的客户端库也不支持读取 JSON 响应,因此它无法读取响应。目前建议的减少有效负载大小的方法是使用 GZip。

Even if you would modify the header for DataServiceRequest the client library of WCF DS doesn't have support for reading JSON responses, so it would not be able to read the response. The currently suggested approach to decrease the payload size is to use GZip.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文