Клиент OData для Obj-C и разбора скалярных возвращаемых значений
Я не могу найти способ для клиента OData Objective-C вернуть значение функции веб-службы, которая просто возвращает что-то простое, например, целое число.
Например,
[WebInvoke]
public Int32 xyx ()
{
возврат (3);
}
Сгенерированный прокси клиентский код генерирует функцию, которая при вызове возвращает отформатированную XML-строку NSString со значением 3 в ней. Я собираюсь разобрать это значение и затем сопоставить его с int? Я думал, что будет проще. Еще сложнее для bools. Чистые значения bool являются истиной / ложью, когда Obj-C - ДА / НЕТ. Вы должны написать код, который анализирует XML, находит истину / ложь, если это YES/NO, arrgggg.
Я думал, что клиент OData отобразит их, я не прав?
1 ответ
Просто интересно, есть ли у кого-нибудь ответ на этот вопрос. Я в одной лодке. В моей ситуации я использую прокси на стороне клиента.Net (Add Service Reference), он очень похож в этой ситуации. В итоге мне приходится вызывать мой сервисный метод, используя:
context.Execute<int32>(new Uri(MyUri, UriKind.Relative)).ToList();
Это возвращает мне коллекцию с 1 предметом. Это работает, но это, конечно, не очень чисто! Надеюсь, у кого-то есть лучшее решение.
Меня также интересует правильный способ доступа к "почтовым данным" из метода сервиса. Я еще не пробовал, но, основываясь на других вещах, которые я сделал, я думаю что-то вроде этого:
HttpRequest ThisRequest = (HttpRequest)System.Web.HttpContext.Current.Request;
string PostData = ThisRequest.Form["PostData"];
Документация OData не очень ясно об этом материале. Спасибо!!