1

Objective-C OData クライアントが、整数などの単純なものを返すだけの Web サービス関数の値を返す方法を見つけることができないようです。

例えば、

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

プロキシによって生成されたクライアント コードは、呼び出されると値 3 を持つ XML 形式の NSString を返す関数を生成します。この値を解析してから 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 に答える