Автор |
Сообщение |
16/01/2018 12:07:36
|
slava
Зарегистрирован: 03/10/2017 07:15:47
Сообщений: 24
Оффлайн
|
Добрый день! Работаем в C# с WSDL. Отправляю запрос на получение списка условий регионализации, ответ приходит, но при попытке его распознать вылетают ошибки (при создании Serializer). XmlSerializer serializer = new XmlSerializer(checkShipmentRegionalizationResponse.GetType()); Ошибки следующие: Невозможно создать временный класс (результат=1). error CS0030: Преобразование типа "MercuryTest.ApplicationService.RegionalizationCondition[]" в "MercuryTest.ApplicationService.RegionalizationCondition" невозможно error CS0029: Неявное преобразование типа "MercuryTest.ApplicationService.RegionalizationCondition" в "MercuryTest.ApplicationService.RegionalizationCondition[]" невозможно Похоже проблема с двумерным массивом (class RegionalizationRequirement). [System.Xml.Serialization.XmlArrayAttribute(Order=2)] [System.Xml.Serialization.XmlArrayItemAttribute("condition", typeof(RegionalizationCondition), IsNullable=false)] public RegionalizationCondition[][] conditionGroup { get { return this.conditionGroupField; } set { this.conditionGroupField = value; this.RaisePropertyChanged("conditionGroup"); } } Кто-нибудь сталкивался с этим? Как решили проблему?
Это сообщение было редактировано 2 раз. Последнее обновление произошло в 16/01/2018 12:11:48
|
|
|
17/01/2018 09:31:35
|
Shooshpanius
Зарегистрирован: 11/12/2017 19:29:12
Сообщений: 28
Оффлайн
|
За данную функцию не скажу, но в целом нормально работать получается только с wsdl справочных сервисов.
По подсистеме обработки заявок - вообще полный ппц. Типы документов в wsdl описаны, но в ответе они приведены в тип Any и если на ruby все замечательно, из savon возвращается полноценный, готовый к обработке объект, то на c# этот Any во вменяемый объект из wsdl уже не получится прямо преобразовать. Приходится конвертить в json и далее просто отдавать его sql серверу, так проще.
В вашем же случае проще сначала получить объект и посмотреть что вернулось. Скорее всего RegionalizationCondition возвращается типом List, а в описании wsdl это одиночная запись.
|
|
|
17/01/2018 11:29:25
|
slava
Зарегистрирован: 03/10/2017 07:15:47
Сообщений: 24
Оффлайн
|
Надоело искать решение, переписал для одномерных массивов (добавил RegionalizationConditionGroup ручками).
Работает.
|
|
|
02/07/2018 10:13:39
|
alexey-zmey
Зарегистрирован: 28/06/2018 16:18:43
Сообщений: 201
Оффлайн
|
Shooshpanius wrote:За данную функцию не скажу, но в целом нормально работать получается только с wsdl справочных сервисов.
По подсистеме обработки заявок - вообще полный ппц. Типы документов в wsdl описаны, но в ответе они приведены в тип Any и если на ruby все замечательно, из savon возвращается полноценный, готовый к обработке объект, то на c# этот Any во вменяемый объект из wsdl уже не получится прямо преобразовать. Приходится конвертить в json и далее просто отдавать его sql серверу, так проще.
В вашем же случае проще сначала получить объект и посмотреть что вернулось. Скорее всего RegionalizationCondition возвращается типом List, а в описании wsdl это одиночная запись.
Я решил эту проблему переопределив классы ApplicationDataWrapper и ApplicationResultWrapper. Если интересно, обращайтесь - подскажу.
А вот с RegionalizationConditionGroup не получилось.
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 03/07/2018 12:55:34
|
|
|
03/07/2018 12:55:05
|
alexey-zmey
Зарегистрирован: 28/06/2018 16:18:43
Сообщений: 201
Оффлайн
|
slava wrote:Надоело искать решение, переписал для одномерных массивов (добавил RegionalizationConditionGroup ручками).
Работает.
А не подскажете как добавить RegionalizationConditionGroup ручками?
у меня не получилось...
|
|
|
18/06/2019 09:51:41
|
reshin
Зарегистрирован: 06/04/2018 10:56:58
Сообщений: 15
Оффлайн
|
alexey-zmey wrote:
slava wrote:Надоело искать решение, переписал для одномерных массивов (добавил RegionalizationConditionGroup ручками).
Работает.
А не подскажете как добавить RegionalizationConditionGroup ручками?
у меня не получилось...
|
|
|
|
|
|