У меня возникла ошибка, когда я пытаюсь работать с wcf-методом. Одним из параметров является NSMutableArray, а Тип объекта - TypeClass. Я проверил все с помощью NSMutableArray, и все кажется прекрасным.Как де-сериализовать объект в объекте-C
Мой код для параметра:
NSData *myPostData = [[NSString stringWithFormat:@"{\"parameter1\":\"%@\"}",mynsmutablearraylist] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *myMutablePostData = [NSMutableData dataWithData:myPostData];
Тип параметра в ФОС как список < класса типов>.
Я могу видеть значения объекта и ключей mynsmutablearraylist. Но я не понимаю, почему это не работает.
Этот метод wcf работает для приложения станции метро Win8, но я не могу заставить его работать для IOS.
На сервере возникла ошибка при обработке запроса. Сообщение об ошибке : «Форматирование выдало исключение при попытке десериализовать сообщение: при попытке указать параметр deserialize http://tempuri.org/:typeclass. InnerException сообщение было «Там было ошибкой десериализации объект типа System.Collections.Generic.List`1 [[ServiceOfMine.Entities.TypeClass, ServiceOfMine, Version = 1.0.0.0, культура = нейтральной, PublicKeyToken = ноль]]. Обнаружен недопустимый символ ' '. '. Дополнительную информацию см. В InnerException. '. Для получения более подробной информации см. Журналы сервера . Стек исключение трассировки:
Добавлена информация:
Когда я проверить параметры с точно такими же значениями, она отлично работает. Часть запроса в SoapUI:
> >....
> > <tem: parameter4>parvalue</tem: parameter4>
> > < tem: typeclass>
> > <!--Zero or more repetitions:-->
> > <ser:TypeClass>
> >
> > <ser:drugId></ser:drugId>
> > <ser:drugname></ser:drugname>
> > </ser:TypeClass>
> > <ser:TypeClass>
> >
> > <ser:drugId></ser:drugId>
> > <ser:drugname></ser:drugname>
> > </ser:TypeClass>
> > </ tem: typeclass>
> > ...
Знаете ли вы формат ожидаемых данных и то, что вы действительно отправляете? – Wain
Он вернет слово с типом NSString. Да, я знаю это. Я проверил их с отладкой. – user3065761
@ user3065761: Он не сказал * тип * данных, он сказал * формат *. Выполняя '[NSString stringWithFormat: @"% @ ", someNSMutableArray]', вы используете форматирование строки NSArray по умолчанию, а не формат, который ожидает WCF. Например, NSArray может дать строку, которая выглядит как «(яблоко, банан,« органический лимон »)», хотя, возможно, WCF ожидает массив, который выглядит как «[» яблоко »,« банан »,« органический лимон »] '. (Я действительно не знаю, чего хочет WCF, но, конечно же, вы можете видеть, что есть несколько способов форматирования списка вещей.) – Chuck