1

我似乎无法找到一种方法让 Objective-C OData 客户端返回 Web 服务函数的值,该函数只返回一些简单的东西,比如整数。

例如,

[WebInvoke]
public Int32 xyx()
{
return ( 3 );
}

代理生成的客户端代码会生成一个函数,当调用该函数时,会返回一个 XML 格式的 NSString,其中的值为 3。我是否必须解析出这个值,然后将其映射到一个 int?我认为这会更容易。布尔值更难。当 Obj-C 为 YES/NO 时,净布尔值是 true/false。您必须编写代码来解析 XML,找到真/假,如果它是 YES/NO,arrgggg。

我以为 OData 客户端会映射这些,我错了吗?

4

1 回答 1

0

只是想知道是否有人对此有答案。我在同一条船上。在我的情况下,我使用的是 .Net 客户端代理(添加服务引用),在这种情况下非常相似。我最终不得不使用以下方法调用我的服务方法:

context.Execute<int32>(new Uri(MyUri, UriKind.Relative)).ToList();

这给了我一个带有 1 个项目的 ICollection。它有效,但它肯定不是很干净!希望有人有更好的解决方案。

我也对从服务方法内部访问“发布数据”的正确方法感兴趣。我还没有尝试过,但基于我做过的其他事情,我在想这样的事情:

HttpRequest ThisRequest = (HttpRequest)System.Web.HttpContext.Current.Request;
string PostData = ThisRequest.Form["PostData"];

OData 文档对这些东西不是很清楚。谢谢!!

于 2011-06-20T18:54:32.033 回答